Strlen和Sizeof的區別

  • Strlen是函數,複雜度是O(n)的

  • Sizeof是運算符,複雜度是常數的

  • Sizeof的值在聲明的時候就已經確定了:
    在這裏插入圖片描述
    如圖所示,char s[100]已經說明了sizeof(s)是100,strlen會掃描一遍直到遇到’\0’爲止。

  • 但是char是字符串指針的話,輸出sizeof只是這個指針的大小4個字節,指示它指向常量字符串。
    在這裏插入圖片描述

  • 值得注意的是下面這種情況,結構體中一個int,一個char爲什麼會佔8個字節,這裏是因爲數據對齊的原因,用空間換時間,結構體中一般以8/4的倍數空間區處理數據。
    在這裏插入圖片描述
    推薦博客:
    https://blog.csdn.net/magic_world_wow/article/details/80500473

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章