sizeof的不同區別

2021-07-11 09:57:33 字數 1327 閱讀 5935

#include

int main()

;printf("%d\n",sizeof(a));           // 16    輸出的結果為16,定義為int型的變數,每位有四個位元組,sizeof求的是總的位元組個數為16

printf("%d\n",sizeof(a+0));        // 4    a代表的是首元素位址,a+0還是代表a,所以輸出的是首元素的位元組長度

printf("%d\n",sizeof(*a));         //   4    *a代表的是首元素的大小 ,為int型別所以為4個位元組

printf("%d\n",sizeof(a+1));      //    4     a是首元素的位址,而a+1代表的是第二個元素,所以大小為4

printf("%d\n",sizeof(a[1]));      //   4      a[1]代表的是第二個元素的大小

printf("%d\n",sizeof(&a));        //4      但是在vc中存在bug,所以顯示為16.其意思為取位址,取位址後,因為是乙個位址所以為4個位元組

printf("%d\n",sizeof(&a+1));   //4       取位址,也為4個位元組

printf("%d\n",sizeof(&a[0]));   // 4       為首元素的位址

printf("%d\n",sizeof(&a[0]+1)); //    4    為乙個元素的位址所以為4個位元組

return 0;

}   

二維陣列中的sizeof以及其他的東西

#include

int main()

;printf("%d\n",sizeof(a));      //陣列名代表整個陣列的長度則為3*4*4=48

printf("%d\n",sizeof(a[0][0]));  //代表第乙個元素,乙個整型,所以為4

printf("%d\n",sizeof(a[0]));     //代表第0行,為四個元素所以為4*4=16

printf("%d\n",sizeof(a[0]+1));  //a[0]代表的是a[0[0]的位址,而a[0]+1代表的是a[0][1]的位址所以為4

printf("%d\n",sizeof(a+1));  //代表乙個陣列的位址為4

printf("%d\n",sizeof(&a[0]+1));//代表乙個陣列的位址為4

printf("%d\n",sizeof(*a));   //代表大小為4的一維陣列,4*4=16

printf("%d\n",sizeof(a[3]));//代表一行的大小為16

return 0;

}

sizeof和strlen區別與不同

sizeof是乙個 操作符關鍵字,返回的結果為 size t typedef unsigned int size t sizeof的引數可以是資料型別,也可以是變數,無論是變數還是資料型別,都會轉化為資料型別作為引數,因為在c語言中變數是有型別的。發生在編譯時候就計算出了sizeof結果 sizeo...

sizeof與strlen的不同

sizeof操作符的結果型別是size t,它在標頭檔案中typedef為unsigned int型別。該型別保證能容納實現所建立的最大物件的位元組大小。sizeof是算符,strlen是函式。sizeof可以用型別做引數,strlen只能用char 做引數,且必須是以 0 結尾的。sizeof還可...

LikeLib 連線不同區塊鏈的跨鏈技術介紹

如果說共識機制是區塊鏈的靈魂核心,跨鏈技術就是實現價值網路的關鍵,是區塊鏈向外拓展和連線的橋梁。而likelib支援側鏈註冊接入,主鏈與側鏈使用跨鏈共識驗證區塊和交易 likelib代幣可以在likelib主鏈和側鏈之間流通,側鏈向主鏈報備區塊頭,主鏈審計側鏈的區塊。一 跨鏈共識域 c3d cros...