回覆列表
-
1 # whq7992
-
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)
相當於做了保險的驗證。
使用限定詞constint 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賦什麼值。
const int i = 10;
如果是C++ 11 還可以是編譯期常量
constexpr int i = 10;