C語言關於sizeof總結

2021-09-11 15:14:27 字數 713 閱讀 5400

一、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使用...