『壹』 C語言中什麼是整型常量
整形常量表達式指的是表達式中的操作數都是整數類型的, 這里的整數類型不僅僅是int類型, 還包括char, (unsigned) short, (unsigned) long等類型. 整型常量表達式中的操作數在編譯時就已經確定了他的值, 因此只需要關注哪些值在編譯時確定就可以了. 這包括以下幾種情況:
1.
單個字元, 比如'A', 'a'
2.
單個整數數字以及由整數數字構成的表達式, 如123, 123 + 345
3.
枚舉常量
4.
有sizeof 運演算法返回的值, 如sizeof(int)
5.
NULL指針值
6.
地址常量. 如0X12345678, 以及地址常量加上一個偏移
在C90和C++中, 靜態數組定義時, 需要提供整形常量表達式. 如int A[10];因此, 你可以簡單的試試用一個表達式去定義一個數組, 如果數組可以正常定義, 這表明這是一個整形表達式.
另外, 在C中, const關鍵字並不是代表其所修飾的變數是常量. 他僅僅代表const 修飾的變數是read-only的, 無法對他進行修改. 這點與C++不同, C++中const關鍵字可以定義一個整形常量, 因此
const int size = 10;
int array[size]; /* C語言中, 編譯不通過, C++中可以通過 */
『貳』 C語言中是如何定義常量的啊
我們在用C編程時有時需要定義不變的變數,即常量,有兩種方法。
例如:
定義常量PI的兩種方式:
1. #define Pi 3.1415926f;
2. const float pi 3.1415926f;
常量有整型常量、浮點型常量、字元型常量及字元串常量。 『
常量定義是指定義符號常量,用一個標識符來代表一個常量,通過宏定義預處理指令來實現。
格式:#define標識符常量
由用戶命名的標識符是符號常量名。作為符號常量名,一般大寫。一旦定義,在程序中凡是出現常量的地方均可用符號常量名來代替。
對使用了符號常量的程序在編譯前會以實際常量替代符號常量。
全局變數和局部變數的區別:
『叄』 C語言中整型常量有幾種形式,它們是如何表示的
在C語言中,整型常量有三種書寫形式:
(1) 十進制整數。十進制整數就是通常整數的寫法。例如:11、15、21等。
(2) 八進制整數。八進制整數的書寫形式是在通常八進制整數的前面加一個數字0。例如:00、0111、015、021等,它們分別表示十進制整數:0、73、13、17
(3) 十六進制整數。十六進制整數的書寫形式是在通常十六進制整數的前面加0x。例如:0x0、0x111、0x15、0x21等,它們分別表示十進制整數0、273、21、33。
注意,整型常量前面沒有+或者-,-10其實是一元-運算符和操作數10,同樣整型常量的十進製表示並沒有0,單獨寫一個0其實是一個八進制常量。
(3)整型常量怎麼編譯擴展閱讀
轉換為整型
要明示地將一個值轉換為 integer,用 (int) 或 (integer)強制轉換。不過大多數情況下都不需要強制轉換,因為當運算符,函數或流程式控制制需要一個 integer 參數時,值會自動轉換。您還可以通過函數 intval() 來將一個值轉換成整型。
1、從布爾值轉換
FALSE 將產生出0(零),TRUE 將產生出1(壹)。
2、從浮點數轉換
當從浮點數轉換成整數時,數字將被取整(丟棄小數位)。
注意:如果浮點數超出了整數范圍(通常為 +/- 2.15e+9 = 2^31),則結果不確定,因為沒有足夠的精度使浮點數給出一個確切的整數結果。在此情況下沒有警告,甚至沒有任何通知!
註:在 Linux 下返回結果是最小負數(-214748),而在 Windows 下返回結果是零(0)。
【以下以C/C++語言為例,陳述一下整型的知識】:
a、C/C++對整型長度的規定是為了執行效率,將int定義為機器字長可以取得最大的執行速度;
b、C/C++中整型包括:int,char和enum,C++中還包含bool類型,C99中bool是一個宏,實際為_Bool;
c、C和C++對enum的規定有所不同,這里不描述;
d、修飾整型正負的有signed和unsigned,對於int默認為signed;
e、修飾 int 大小的有short和long,部分編譯器還擴展了一些更長的整型,比如long long和__int64, C99中增加了long long和unsigned long long;
f、int 的長度與機器字長相同,16位的編譯器上int長16位,32位的編譯器上int長32位;
g、short int的長度小於等於int 的長度,注意它們可能長度相等,這取決於編譯器;
h、long int 的長度大於等於int 的長度,注意它們可能長度相等,這取決於編譯器;
i、char 的長度應當可以包容得下一個字元,大部分系統中就是一個位元組,而有的系統中可能是4個位元組,因為這些系統中一個字元需要四個位元組來描述;
j、char 的正負取決於編譯器,而編譯器的決定取決於操作系統,在不同的編譯器中char可能等同於signed char,也可能等同於unsigned char。
參考資料來源:網路-整型
參考資料來源:網路-整型常量