sizeof是乙個
操作符關鍵字,返回的結果為 size_t (typedef unsigned int size_t;)
sizeof的引數可以是資料型別,也可以是變數,無論是變數還是資料型別,都會轉化為資料型別作為引數,因為在c語言中變數是有型別的。
發生在編譯時候就計算出了sizeof結果
sizeof計算的是資料型別佔記憶體的大小
陣列做sizeof引數不退化。
char a[5]
int b[5]
sizeof(a) sizeof(b) ,這時候的引數不是作為指標傳遞,故為不退化
sizeof(a)結果為5,因為char型別為1
sizeof(b)結果為10或者20,因為int型別在16位機器(2個位元組),32位機器(4個位元組)下不同
即不同字長度的機器上整型資料的長度。
指標變數的長度和其指向的資料型別沒有關係,而與機器位數有關係,16位機器就是2個位元組,32位機器就是4個位元組
strlen是庫函式 返回的結果為 size_t (typedef unsigned int size_t;)
strlen只能以結尾為'\0'的字串做引數
strlen是必須執行時才能計算出來
strlen是計算字串的實際長度,不包括'\0'
strlen就會退化為指標。
sizeof和strlen的區別
sizeof與strlen的區別與聯絡 轉 1.sizeof操作符的結果型別是size t,它在標頭檔案中typedef為unsigned int型別。該型別保證能容納實現所建立的最大物件的位元組大小。2.sizeof是算符,strlen是函式。3.sizeof可以用型別做引數,strlen只能用c...
strlen和sizeof的區別
sizeof與strlen的區別與聯絡 轉 1.sizeof操作符的結果型別是size t,它在標頭檔案中typedef為unsigned int型別。該型別保證能容納實現所建立的最大物件的位元組大小。2.sizeof是算符,strlen是函式。3.sizeof可以用型別做引數,strlen只能用c...
sizeof和strlen的區別
sizeof和strlen都可以用來求變數的長度,但兩者之間還是有很大的區別的。首先,從2個例子講起 例1 charss 100 0123456789 sizeof ss 結果為100 ss表示在記憶體中預分配的大小,100 1 strlent ss 結果為10 它的內部實現是用乙個迴圈計算字串的長...