關鍵字 sizeof(不是函式)

2021-07-30 10:35:14 字數 1018 閱讀 7309

關鍵字----sizeof(不是函式)

sizeof是關鍵字不是函式。sizeof在計算變數所佔空間大小時,括號可以省略,而計算型別(模子)大小時不能省略。

#include int getsize(int data)

void fun(int b[100])

int main()

; int a[100];

int b[100];

int size1=sizeof(data1);

int* data2=data1;

int size2=sizeof(data2);

int size3=getsize(data1);

printf("%d,%d\n",sizeof(p),sizeof(*p));//輸出:8,4

printf("%d,%d,%d,%d\n",sizeof(a),sizeof(a[100]),sizeof(&a),sizeof(&a[0]));//輸出:400,4,8,8

printf("%d,%d,%d,%d\n",sizeof(int),sizeof i,sizeof(i),sizeof(int*));//輸出:4,4,4,8

printf("%d,%d,%d\n",size1,size2,size3);//輸出:20,8,8

fun(b);//輸出:8

}

解析:

data1是乙個陣列,sizeof(data1)是求陣列的大小。這個陣列包含5個整數,每個整數佔4個位元組,因此總共是20位元組。data2 宣告為指標,儘管它指向了陣列data1的第乙個數字,但它的本質任然是 乙個指標。在64位系統上,對任意指標求sizeof, 得到的結果都是8.在c/c++中,當陣列作為函式的引數進行傳遞時,陣列就自動退化為同型別的指標。因此儘管函式getsize的引數data被宣告為陣列,但它會退化為指標,size3的結果仍然是8。

關鍵字sizeof 和函式strlen

關鍵字sizeof 用來計算變數或者型別所佔的記憶體大小。函式strlen 用來計算字串的長度 只能用char 做引數 char str 20 helloworld sizeof str 的值是20 strlen str 的值是10 char str helloworld sizeof str 的值...

簡記關鍵字sizeof

sizeof 是計算分配記憶體的大小,是c語言中保留關鍵字,也可以認為是一種運算子,單目運算子。但是最好不要把sizeof當成函式,也不要看作一元操作符,把他當成乙個特殊的編譯預處理。sizeof typename sizeof 型別 sizeof objict sizeof物件 strlen執行的...

C語言 sizeof 關鍵字

sizeof是c語言中保留關鍵字,也可以認為是一種運算子,單目運算子,可以計算運算元的大小。sizeof的結果是無符號整數型別,通常用size t表示。sizeof可以應用於各種資料型別,包括基本的資料型別,例如整數和浮點型別,指標型別和符合資料型別,結構體等等。32位編譯器 includeint ...