關鍵字----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 ...