回覆列表
  • 1 # whq7992

    const int i = 10;

    如果是C++ 11 還可以是編譯期常量

    constexpr int i = 10;

  • 2 # 愛相隨不後悔1

    const是C++常用的,對於c語言一般是宏定義,例如定義圓周率婆π=3.14,程式碼為:#define PI 3.14

  • 3 # 素食的貓

    C語言中沒有JAVA直接常量概念,只有:

    #define PI 3.141592654

    這樣的宏替換,就是一種符號替代,PI不是記憶體中的儲存單元。

  • 4 # 小王吧啦

    C語言裡應該沒有你說的這個概念。

    常量你可以用

    1. 宏定義: #define A 123456

    2. const修飾符: const int a = 654321

  • 5 # 隔壁老西工

    有兩種方法:

    使用#define,宏定義

    #define A 2

    在使用宏定義時,要特別小心運算子的優先順序問題,一般情況下,為了避免被誤用或碰到複雜運算表示式。例如:

    #define B A+1

    int v = B * 2; //展開後時 A+1*2,所以定義宏時最好加括號保證運算優先順序符合預期

    改為:

    #define A (2)

    #define B (A+1)

    相當於做了保險的驗證。

    使用限定詞const

    int const a = 2;

    當然,這裡寫成const int似乎並沒有問題。但這更多的是在C++中的習慣,在C中習慣還是int const。我們看到c標準庫中有這種:

    int atoi(const char* str);

    但我們在唸的是有還是先char再const。

    注:在使用const修飾變數時應立刻賦值,否則後續再無機會。舉個例子:

    int const a = 2;

    int const b;

    a = 5; // 編譯時報錯,不應該對const修飾的變數賦值

    b = 6; // 編譯時報錯,不應該對const修飾的變數賦值

    printf("%d", b); // 不知道系統會給b賦什麼值。

  • 中秋節和大豐收的關聯?
  • 相親大家第一看中的就是顏值嗎?為什麼有的人不承認?