C語言初學--對變量的認識

變量類型:int              - 4字節(1字節=8bit)

                    short         -2字節 

    float       -4字節

                   double     -8字節

                   char          -1字節

    (任意類型)*      - 4字節              

#include"stdio.h"   在計算機中變量以補碼方式存在  而正數原碼=補碼;負數補碼=原碼取反+1;負數原碼=補碼取反+1(計算機只計算加法)

#include"string.h"  以左圖爲例 strlen(a)遇到 ‘0’時停止計算字符串長度 而數字 0  ASCII碼即‘0’;

int main()                 char 1個字節=8bit 所以 0的補碼爲0000 0000  -1的補碼爲 1 111 1111(第一個1 爲符號位 代表負數)
{                                 i = -1 + (-a[i])   a[i] = 0 所以 i = 1111 1111 (注意 i 一定是正數 而正數的原碼=補碼)所以 i=255.
char a[1000];            strlen 計算到a[254] ,a[255]不計算入內 所以長度爲255(別忘記a[0])
int i;                            這是計算有符號位的 那麼無符號位呢?同樣也是255 這時候char的範圍爲0~255 (有符號的是-128~127)
for(i=0;i<1000;i++)   這時候注意有符號數和無符號數進行比較運算時 有符號數隱式轉換成無符號數;

{                                  所以答案同樣是255 。
a[i]=-1-i;
}
printf("%d",strlen(a));
return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章