① c語言中是如何定義常量的啊
C語言定義常量常用的方法有以下2種:
第一種:宏定義
#define N 3 // 定義了一個常量為3的宏N,在程序中N就代表3
第二種:給變數初始化賦值
int a = 2; // 定義了一個int型變數,並賦值為2,其實這是用變數來定義常量
註:定義常量還是用宏定義的比較多。
② int型常量到底是如何定義的
整型常量,即整常數,在c語言有三種表示方法:
十進製表示法:如:123,-345
八進製表示法:以數字0開頭,比如012(是八進制數)。
十六進製表示法:以0x開頭的,比如0x123(是十六進制數)。
整型常量的默認數據類型是int類型,即有符號整數類型。
③ 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)可以正確定義c語言整型常量是擴展閱讀
轉換為整型
要明示地將一個值轉換為 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。
參考資料來源:網路-整型
參考資料來源:網路-整型常量
④ 正確的C語言常量是什麼
正確的C語言常量是指針常量。
在除了『C/C++』的一些高級程序語言中,『常量』可以被稱作,「在一個信息變化過程中,始終不發生改變的量」,其可以是不隨著時間變化的某些量的固定信息;也可以表示為某一數值的字元(或字元串),常被用來標識、測量和比較兩者的差異。
但在 『C/C++語言中』,『常量』如果還用『運行過程中不變的量』來描述,就顯得不太准確了,甚至是在具體使用時,這就是一個錯誤的概念。在 『C/C++』中,常量實質是『指針常量』,雖然其看起來『符合常量的概念』,但是在實際運行中,其值或地址值是會發生變化的。
(4)可以正確定義c語言整型常量是擴展閱讀:
C語言常量只要const位於指針聲明操作符右側,就表明聲明的對象是一個常量,且它的內容是一個指針,也就是一個地址,並且在聲明的時候一定要給它賦初始值。一旦賦值,以後這個常量再也不能指向別的地址。
C語言常量指針的使用要注意,指針指向的對象不能通過這個指針來修改,可是仍然可以通過原來的聲明修改,也就是說C語言常量可以被賦值為變數的地址,只是限制了通過這個指針修改變數的值。