c中sizeof的用法
本文已影響
1.97W人
c中sizeof的用法你知道嗎?下面小編就跟你們詳細介紹下c中sizeof的用法,希望對你們有用。
c中sizeof的用法如下:
學習C/C++有時會遇到下面的情況:
已知 char *str1="absde";
char str2[]="absde";
char str3[8]={'a',};
char str4 [] = "0123456789";
為什麼sizeof(str1)=4
sizeof(str2)=6;
sizeof(str3)=8;
sizeof(str4)=11;呢? 丈二和尚摸不著頭腦,接下來我們一起好好討論討論,sizeof()到底是怎麼一回事。
首先咱們說明一點,char型別變數在記憶體中佔一個位元組,所以sizeof(char)是1,這點咱們學C/C++的應該很好理解。
str1是一個指標變數,它只是指向了字串"absde"而已。sizeof(str1)既不是字串佔的空間長度,也不是字元陣列佔的空間長度,而是一個字元型指標佔的空間,所以sizeof(str1)=sizeof(char*)=4(因為在C/C++中一個指標佔4個位元組)。
str2是一個字元型陣列。C/C++規定,對於一個數組,返回這個陣列佔的總空間,所以sizeof(str2)取得的是字串"absde"佔的總空間。"absde"中,共有a b s d e