sizeof是返回一個對象或類型所占的內存字節數;
C語言中的構造數據類型有三種:數組、結構體和共用體。
主要有三種用法:
1) sizeof( object ); // sizeof( 對象 ); 2) sizeof(type_name ); // sizeof( 類型 ); 3) sizeof object; // sizeof 對象;
數組是相同類型的元素的集合,只要會計算單個元素的大小,整個數組所占空間等於基礎元素大小乘上元素的個數。
結構體中的成員可以是不同的數據類型,成員按照定義時的順序依次存儲在連續的內存空間。和數組不一樣的是,結構體的大小不是所有成員大小簡單的相加,需要考慮到系統在存儲結構體變量時的地址對齊問題;
- struct stu1
- {
- int i;
- char c;
- int j;
- };
用sizeof求該結構體的大小,發現值為12。int占4個字節;
有關於結構體的sizeof的問題,參考這個網址:
https://blog.csdn.net/qq_18884827/article/details/52523448
基本數據類型:
類型名 字節
char 1
short int 2
int 4
long int 4
float 4
double 8
long double 10
sizeof(p/指針):得到的是指針所占的內存,即指針的大小,在32位系統上,不管指針p指向的是整型數據,還是字符型數據,short型數據,long型數據等,指針p本身所占的內存字節數均為4。也就是要使用4個字節的大小來存儲變量p的值。
若有int a[10],*p=a; sizeof(p)=4,sizeof(a)=40;