sizeof與strlen的區別

來源:互聯網
上載者:User

標籤:c   strlen   sizeof   區別   

(1)用strlenFunction Compute字串的長度時,strlen的結果值是不包含’\0’的。而sizeof計算 字串的長度時,它的結果值包括’\0’.

(2)sizeof如用於數組,只能測出靜態數組的大小,無法檢測動態分配的或外部數組大小。

(3)sizeof 是關鍵字不是函數,sizeof 在計算變數所佔空間大小時,括弧可以省略,而計算類型(模子)大小時不能省略。當然它也可以計算函數大小,計算函數大小時可以省略括弧,其計算函數的大小為函數返回值的類型所佔位元組數。無返回值得函數,預設大小為1個位元組。

(4)對一個變數進行sizeof運算和對該變數所在的地址進行sizeof運算所得結果相同。

int i=0;

Sizeof(i)=4,sizeof(&i)=4

(5)sizeof()和初不初始化,沒有關係;strlen() 和初始化有關。

(6)Sizeof運算結果是運算元所佔的記憶體空間的位元組數,strlen返回的是以’\0’結束符結束的字串的長度。

char str[20]="0123456789";

int a=sizeof(str) //a=20;

int b=strlen(str)  //b=10;

(7)sizeof是在編譯時間就進行計算,strlen在運行時才進行操作。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.