當前位置:
首頁 > 情感 > strlen 與sizeof()的區別

strlen 與sizeof()的區別

這兩個都是計算機語言,strlen所作的僅僅是一個計數器的工作,它從內存的某個位置(可以是字元串開頭,中間某個位置,甚至是某個不確定的內存區域)開始掃描,直到碰到第一個字元串結束符""為止,然後返回計數器值(長度不包含"")。sizeof()是運算符,可用於任何變數名、類型名或常量值,當用於變數名(不是數組名)或常量時,它不需要用圓括弧。它在編譯時起作用,而不是運行時。

strlen 與sizeof()的區別

  • sizeof後如果是類型必須加括弧,如果是變數名可以不加括弧。這是因為sizeof是個操作符不是個函數。

strlen 與sizeof()的區別

  • sizeof返回定義arr數組時,編譯器為其分配的數組空間大小,不關心裏面存了多少數據。strlen只關心存儲的數據內容,不關心空間的大小和類型。

strlen 與sizeof()的區別

  • sizeof可以用類型做參數,strlen只能用char*做參數,且必須是以""""結尾的

strlen 與sizeof()的區別

  • sizeof是算符,strlen是函數

strlen 與sizeof()的區別

  • sizeof(x)可以用來定義數組維數,大部分編譯程序在編譯的時候就把sizeof計算過了

strlen 與sizeof()的區別

  • 數組做sizeof的參數不退化,傳遞給strlen就退化為指針了

strlen 與sizeof()的區別

  • 如果要獲得這個字元串的長度,則一定要使用 strlen,sizeof()函數返回的是變數聲明後所佔的內存數,不是實際長度。

strlen 與sizeof()的區別

  • 08

  • 數組作為參數傳給函數時傳的是指針而不是數組,傳遞的是數組的首地址。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 生活中的小知識 的精彩文章:

如何給手機降溫提高壽命?
如何防止身份證複印件被盜用?

TAG:生活中的小知識 |