(關鍵字)sizeof:求資料型別位元組數
sizeof.c
執行結果:#include
int mian()
(關鍵字)volatile:防止編譯時被優化
(關鍵字)const:修飾唯讀變數
const.c
執行結果:#include
int main()
const就近原則
const int *p; 所指內容不能改變
int * const p; 位址不能改變
const int * const p; 都不能改變
(庫函式)strlen:求字串長度,遇到\0結束
strlen.c
執行結果:#include
#include
int main()
printf("\nstrlen:%d\n",strlen(a));
return
0;}
分析:char佔乙個位元組,8位,strlen遇到\0結束
符號位為1表示負數,其餘全1表示-1,其餘全0表示負數最大值
個人理解:-7-1=-8
-7的補碼: 1001
-1的補碼: 1111
相加結果:11000,前面越界捨去即1000是-8的補碼
負數補碼的演算法:從左往右第乙個1保持不變,其餘依次取反
題目一:
int i = -20;
unsigned int j = 10;
i+j=?
執行結果:int i = -20;
unsigned int j = 10;
if (i + j > 0)
printf("big zero\n");
else
printf("small zero\n");
printf("i+j=%d\n",i+j); \\以帶符號的十進位制形式輸出整數
printf("i+j=%u\n",i+j): \\以無符號的十進位制形式輸出整數
分析:往表示大的轉換,這裡有符號轉換為無符號
-20的補碼: 1111 1111 1111 1111 1111 1111 1110 1100
10的源反補一致: 0000 0000 0000 0000 0000 0000 0000 1010
兩數相加: 1111 1111 1111 1111 1111 1111 1111 0110
該數無符號的十進位制為:4294967286
題目二:
unsigned int a = 3;
unsigned int j;
j = a *(-1);
j?
執行結果:unsigned int a = 3;
unsigned int j;
j = a *(-1);
if(j>0)
printf("big zero\n");
else
ptintf("small zero\n");
printf("j=%d\n",j);
printf("j=%d\n",j);
分析:
-1的補碼: 1111 1111 1111 1111 1111 1111 1111 1111
3的源反補一致:0000 0000 0000 0000 0000 0000 0000 0011
兩數相乘:1111 1111 1111 1111 1111 1111 1111 1101
該數的無符號十進位制表示:4294967293
C語言關鍵字
c語言關鍵字 在檔案範圍的教訓和關鍵字,你知道靜態變數保持他們的價值觀,甚至不在他們超出範圍的破壞。比如說呢。int generateid int main this program prints 01 2 請注意,s nid一直保持它的價值的跨多個函式呼叫。static關鍵字有另一種意思當應用到全...
C語言關鍵字
關鍵字就是已被c語言本身使用,不能作其它用途使用的字。例如關鍵字不能用作變數名 函式名等 由ansi標準定義的c語言關鍵字共32個 auto double int struct break else long switch case enum register typedef char extern...
c語言關鍵字
c 語言標準定義的32 個關鍵字 1 auto 宣告自動變數,預設時編譯器一般預設為auto int 宣告整型變數 double 宣告雙精度變數 雙精度浮點型 long 宣告長整型變數 char 宣告字元型變數 float 宣告浮點型變數 單精度浮點型 6.1 float的有效位通常有 位,指的是小...