0xde c語言合法常量 C語言的乙個小陷阱

2021-10-16 11:26:50 字數 828 閱讀 2705

其實說的就是定義問題,圖中看不清楚的,可以看下面**部分:

#define limit 20

const int lim = 50;

static int data1[limit]; //合法

static int data2[lim]; //無效

const int lim2=2* limit; //合法

const int lim3=2*lim; //無效

原因可以從定義中得出:1. define定義的是常量。

2. const 定義的是唯讀變數,不能改變,但不是常量,不能用在陣列的下標中(c99支援變長陣列);

3. 還有常量被編譯器放在記憶體中的唯讀區域,不能去修改;

4. 而「唯讀變數」放在記憶體中開闢的乙個空間來存放它的值,但是被編譯器限定不能修改。

5. 而c++中,static int data1[lim]是合法的,因為c++將const擴充套件了。

由此可以看出,在學習的過程中,要時時刻刻注意定義。

關於c語言中合法的數值常量

1.實數型常量 必須含有小數點,但看到 float f 1.是對的,系統會預設小數點後的值為0,即輸出時為1.00000 2.八進位制常量 開頭必定是0,且後面的數只能在0 7之間。如091就是錯誤的。3.十六進製制常量 以0x或0x開頭,在16進製制中不區分大小寫,即0x6與0x6等價。可包含字母...

C語言 C語言常量和變數

目錄 常量 定義 分類 特殊字元型常量 變數 定義 定義變數 變數的使用 變數使用注意 變數常見問題 1.常量 定義 常量表示固定的資料。分類 整型常量 如6,7,2 浮點型常量 如6.3,6.3,5.82f 注 實型常量 小數 分為單雙精度 float double 字元常量 如 7 a h 不能...

C語言 C語言常量和變數

目錄 常量 定義 分類 特殊字元型常量 變數 定義 定義變數 變數的使用 變數使用注意 變數常見問題 1.常量 定義 常量表示固定的資料。分類 整型常量 如6,7,2 浮點型常量 如6.3,6.3,5.82f 注 實型常量 小數 分為單雙精度 float double 字元常量 如 7 a h 不能...