国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言中關于sizeof 和 strlen的區別分析

2020-01-26 15:10:14
字體:
來源:轉載
供稿:網友

1、編譯時計算運算符sizeof,可用類型或變量做參數,計算占用內存的大小。sizeof后若是類型必須加括弧,若是變量名可不加括弧。sizeof(x)可用來定義數組維數如:

復制代碼 代碼如下:

printf("%d/n", sizeof(short));

    輸出的結果為短整型的長度2。用結構類型或變量做參數時,sizeof 返回實際的大小,當用于靜態數組時,sizeof 返回全部數組的尺寸。sizeof 操作符不能返回動態地被分派了的數組或外部的數組的尺寸

2、運行時計算strlen,只能用char*做參數,且必須是以''/0''結尾的。計算的是字符串的長度。如:

復制代碼 代碼如下:

char str[20]="0123456789";
int a=strlen(str); // 結果為a=10
int b=sizeof(str); // 結果b=20;

3、處理靜態數組:

復制代碼 代碼如下:

char str[20]="0123456789";
int a=strlen(str); // a=10; strlen 計算字符串的長度,以/0'為字符串結束標記。
int b=sizeof(str); // b=20; sizeof 計算的則是分配的數組str[20] 所占的內存空間的大小,不受里面存儲的內容影響。

4、處理指針:

復制代碼 代碼如下:

char* ss = "0123456789";
sizeof(ss) // 結果4,

ss是指向字符串常量的字符指針,sizeof 獲得的是一個指針所占的空間。sizeof(*ss) 結果1,*ss是第一個字符 其實就是獲得了字符串的第一位'0' 所占的內存空間,是char類型的,占用1字節。strlen(ss)= 10,若要獲得這個字符串的長度,則一定要使用 strlen

以上所述就是關于sizeof 和 strlen區別的全部內容了,希望大家能夠喜歡

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 周宁县| 深泽县| 繁昌县| 道真| 普格县| 壤塘县| 宁夏| 高州市| 罗甸县| 灵台县| 保德县| 平南县| 旺苍县| 那曲县| 奉贤区| 汪清县| 满城县| 长宁县| 长白| 滕州市| 曲阜市| 阿城市| 三河市| 获嘉县| 都江堰市| 双鸭山市| 鹤峰县| 高要市| 兴宁市| 贵溪市| 彭泽县| 沭阳县| 平度市| 龙江县| 大荔县| 大庆市| 金坛市| 房山区| 洪泽县| 吉木萨尔县| 沿河|