91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行sizeof和strlen解析

發布時間:2022-01-10 09:47:40 來源:億速云 閱讀:169 作者:柒染 欄目:網絡安全

這篇文章的內容主要圍繞如何進行sizeof和strlen解析進行講述,文章內容清晰易懂,條理清晰,非常適合新手學習,值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過這篇文章有所收獲!

1.strlen函數.

strlen所作的僅僅是一個計數器的工作,它從內存的某個位置(可以是字符串開頭,中間某個位置,甚至是某個不確定的內存區域)開始掃描,直到碰到第一個字符串結束符 '\0'為止,然后返回計數器值

2.sizeof操作符

sizeof()返回的是變量聲明后所占的內存數,不是實際長度,此外sizeof不是函數,僅僅是一個操作符。

3.strlensizeof的區別

3.1  sizeof可以用類型做參數,strlen只能用char*做參數,且必須是以''\0''結尾的。

3.2  sizeof還可以用函數做參數,比如:short f(); printf("%d\n", sizeof(f()));輸出的結果是sizeof(short),即2。

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

3.4  大部分編譯程序在編譯的時候就把sizeof計算過了是類型或是變量的長度這就是sizeof(x)可以用來定義數組維數的原因。

3.5  strlen的結果要在運行的時候才能計算出來,是用來計算字符串的長度,不是類型占內存的大小。

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

4.舉例區別strlensizeof

1.char str[20]="0123456789";

int a=strlen(str); //a=10; >>>> strlen 計算字符串的長度,以結束符 0x00 為字符串結束。   

int b=sizeof(str); //而b=20; >>>> sizeof 計算的則是分配的數組 str[20] 所占的內存空間的大小,不受里面存儲的內容改變。

2.上面是對靜態數組處理的結果,如果是對指針,結果就不一樣了   

char* ss = "0123456789";   

sizeof(ss) 結果 4 ===》ss是指向字符串常量的字符指針,sizeof 獲得的是一個指針的之所占的空間,應該是長整型的,所以是4

而sizeof(*ss) 結果 1 ===》*ss是第一個字符,其實就是獲得了字符串的第一位'0' 所占的內存空間,是char類型的,占了 1位

strlen(ss)= 10 >>>> 如果要獲得這個字符串的長度,則一定要使用 strlen。 sizeof返回對象所占用的字節大小. strlen返回字符個數。

3.在使用sizeof時,有一個很特別的情況,就是數組名到指針蛻變,

char Array[3] = {'0'};   

sizeof(Array) == 3;   

char *p = Array;   

strlen(p) == 1;//sizeof(p)結果為4   

在傳遞一個數組名到一個函數中時,它會完全退化為一個指針

4. 內存補齊

class X

{

  int i;

  int j;

  char k;

};

X x;

cout<<sizeof(X)<<endl; 結果 12 ===》內存補齊

cout<<sizeof(x)<<endl; 結果 12 同上。

內存補齊是一個在筆試面試中比較容易考的知識點 

感謝你的閱讀,相信你對“如何進行sizeof和strlen解析”這一問題有一定的了解,快去動手實踐吧,如果想了解更多相關知識點,可以關注億速云網站!小編會繼續為大家帶來更好的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

霍邱县| 灵璧县| 墨江| 浦江县| 神农架林区| 屏东市| 辽宁省| 渭源县| 沂水县| 商南县| 焦作市| 车致| 晋宁县| 潜山县| 雷州市| 秀山| 大洼县| 苍南县| 寿光市| 岳池县| 雷山县| 修文县| 名山县| 广宁县| 闽侯县| 包头市| 三江| 瑞丽市| 甘孜县| 桐城市| 读书| 文昌市| 霍州市| 盈江县| 鄂伦春自治旗| 黑龙江省| 区。| 当涂县| 垫江县| 阳城县| 辉县市|