一、sizeof用來計算乙個變數,或者資料型別的長度,以位元組為單位。
它是乙個操作符,如同++,--一樣,單運算元。
比如在我的電腦上,sizeof(int)=4,sizeof(long)=4。還有一般要求的sizeof(char)=1。
二、sizeof在陣列與指標上的特性
c語言中的指標使其具備了強大的功能,同時也造成了許多迷惑。眾多迷惑中的一點是sizeof在對待陣列與指標上的差別。
總結來說有以下兩點:
1 對於直接的呼叫sizeof,如果是陣列首位址,sizeof會輸出陣列所佔位址空間的大小(位元組為單位)。如果是乙個指標的話,則輸出在該系統中位址的位元組寬度,即(位寬/8)。
char str="hello world!";
char *p = str;
int n = 10;
printf("%d %d %d",sizeof(str),sizeof(p),sizeof(n));
如下代:
void foo(char str[100])
int main()
; void *p = malloc(100);
foo(buf);
printf("%d\n",sizeof(p));
}
如果是通過函式傳遞過來的位址,那麼sizeof會把陣列首位址和指標無差別當成是位址. C語言詳解sizeof
一 sizeof的概念 sizeof是c語言的一種單目操作符,如c語言的其他操作符 等。它並不是函式。sizeof操作符以位元組形式給出了其運算元的儲存大小。運算元可以是乙個表示式或括在括號內的型別名。運算元的儲存大小由運算元的型別決定。二 sizeof的使用方法 1 用於資料型別 sizeof使用...
C語言 sizeof使用
筆試題一道 char a 問 sizeof a 的大小 分析陣列的含義 陣列裡面存放的是指向char型的指標,並且初始化這兩個指標,分別讓其指向 兩個字串常量,值得注意的是這兩個字串常量並不在棧中,而是在ro型資料。所以結果為8!c 6.0驗證如下 圖1 圖2如圖1中所示,可以發現陣列中存放的就是兩...
c語言詳解sizeof
一 sizeof的概念 sizeof是c語言的一種單目操作符,如c語言的其他操作符 等。它並不是函式。sizeof操作符以位元組形式給出了其運算元的儲存大小。運算元可以是乙個表示式或括在括號內的型別名。運算元的儲存大小由運算元的型別決定。二 sizeof的使用方法 1 用於資料型別 sizeof使用...