c語言中strlen與sizeof有什麼區別

時間 2021-08-11 17:23:45

1樓:匿名使用者

strlen 是返回所定義字串的長度,而sizeof是用來取得變數或型別所占用的記憶體空間大小的。

2樓:匿名使用者

strlen 是返回字串的長度。

而sizeof,卻是用來取得變數或型別所占用的記憶體大小的。

這個a陣列的字串長度為4(末尾的\0是不計入字串長度的),但a是10個單位的char型,它占用的記憶體空間是10*sizeof(char),為10. sizeof 返回的數量的單位是byte.

3樓:愛之紅豆秋海棠

strlen可以得到字串長度。sizeof可以得到記憶體位元組長度

陣列有10個char型成員,自然有10的位元組長度

4樓:匿名使用者

因為strlen(char*)函式求的是字串的實際長度,它求得方法是從開始到遇到第乙個'\0',如果你只定義沒有給它賦初值,這個結果是不定的,它會從aa首位址一直找下去,直到遇到'\0'停止。 而sizeof()返回的是變數宣告後所佔的記憶體數,不是實際長度,此外sizeof不是函式,僅僅是乙個操作符,strlen是函式。

c語言中,sizeof和strlen都是表示字串長度的嗎?誰能告訴我它們兩者的區別~~

5樓:匿名使用者

sizeof 計算的是資料在記憶體中存放的長度,單位是「位元組」,可以對任何資料型別做運算,而且它是乙個運算子(和+、-、*、\類似);當對字串計算時,包含末尾的"\0";當對字元陣列操作時,返回的是陣列的總的長度,也就是當把陣列作為引數傳遞給sizeof時是不會退化的。strlen 計算的是字串的長度,單位是「字元」,只能對字串運算,而且它是函式(不是運算子),計算時,不包含末尾的"\0";當對字元陣列操作時,返回的是陣列總存放的字串的實際長度(也就是\0之前的),也就是當把陣列作為引數傳遞給strlen時是會退化成char*指標的。例如:

char* str = "hello!";sizeof(str)值為7;strlen(str)值為6;char str[20] = "hello!";sizeof(str)值為20;strlen(str)值為6;

6樓:匿名使用者

把是sizeof 是整個變數的大小 strlen 是字串的大小(strlen 是首位址進行計數直至遇到'\0' 停止計數):如char buffer[50]="hello world"; ("hello world" d字元後會追加個'\0'字元)printf("%d, %d \n",sizeof(buffer),strlen(buffer)); 結果為50, 11

c語言中的strlen函式,C語言中的strlen函式

冰 vs 霰 strlen是測量字串長度的 char d 和char a china char b 是等價的 是陣列的表示形式 而char c 卻是字元陣列所以並不能得到結果 strlen函式測量字串中字元個數,不包括結尾的 0 字元,你的 char c沒有結尾的 0 不是合法的字串,所以結果不對 ...

c語言中sizeof 和strlen 用法上有什麼區別呢

延霞月 兩者都是返回位元組數,具體講前者返回的是位元組數,而後者返回的是字元數 其次,sizeof返回的數量包括最後的結束符 0 而strlen則沒有。 sizeof是操作符,不是函式。它後面的 並不是必須的,沒有歧意時就不必寫上了。sizeof操作符計算的是系統為它後面的變數或型別名分配的空間大小...

c語言中c與s的區別,c語言中 c與 s的有什麼區別?

mxx米小夕 c語言中 c格式符表示輸出的是字元 s格式符表示輸出的是字串。c語言基本構成 1.資料型別 c的資料型別包括 整型 字元型 實型或浮點型 單精度和雙精度 列舉型別 陣列型別 結構體型別 共用體型別 指標型別和空型別。2.常量與變數 常量其值不可改變,符號常量名通常用大寫。變數是以某識別...