最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言中關(guān)于sizeof 和 strlen的區(qū)別分析

 更新時(shí)間:2015年02月28日 09:53:52   投稿:hebedich  
本文通過示例簡(jiǎn)單分析了4種情況下C語(yǔ)言中sizeof 和 strlen的區(qū)別,算是個(gè)人經(jīng)驗(yàn)的一個(gè)小小的總結(jié),如有遺漏還請(qǐng)大家告知。

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

復(fù)制代碼 代碼如下:

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

    輸出的結(jié)果為短整型的長(zhǎng)度2。用結(jié)構(gòu)類型或變量做參數(shù)時(shí),sizeof 返回實(shí)際的大小,當(dāng)用于靜態(tài)數(shù)組時(shí),sizeof 返回全部數(shù)組的尺寸。sizeof 操作符不能返回動(dòng)態(tài)地被分派了的數(shù)組或外部的數(shù)組的尺寸

2、運(yùn)行時(shí)計(jì)算strlen,只能用char*做參數(shù),且必須是以''\0''結(jié)尾的。計(jì)算的是字符串的長(zhǎng)度。如:

復(fù)制代碼 代碼如下:

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

3、處理靜態(tài)數(shù)組:

復(fù)制代碼 代碼如下:

char str[20]="0123456789";
int a=strlen(str); // a=10; strlen 計(jì)算字符串的長(zhǎng)度,以\0'為字符串結(jié)束標(biāo)記。
int b=sizeof(str); // b=20; sizeof 計(jì)算的則是分配的數(shù)組str[20] 所占的內(nèi)存空間的大小,不受里面存儲(chǔ)的內(nèi)容影響。

4、處理指針:

復(fù)制代碼 代碼如下:

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

ss是指向字符串常量的字符指針,sizeof 獲得的是一個(gè)指針?biāo)嫉目臻g。sizeof(*ss) 結(jié)果1,*ss是第一個(gè)字符 其實(shí)就是獲得了字符串的第一位'0' 所占的內(nèi)存空間,是char類型的,占用1字節(jié)。strlen(ss)= 10,若要獲得這個(gè)字符串的長(zhǎng)度,則一定要使用 strlen

以上所述就是關(guān)于sizeof 和 strlen區(qū)別的全部?jī)?nèi)容了,希望大家能夠喜歡

相關(guān)文章

  • C++實(shí)現(xiàn)圖片轉(zhuǎn)base64的示例代碼

    C++實(shí)現(xiàn)圖片轉(zhuǎn)base64的示例代碼

    Base64就是一種 基于64個(gè)可打印字符來(lái)表示二進(jìn)制數(shù)據(jù)的表示方法,本文主要為大家詳細(xì)介紹了如何使用C++實(shí)現(xiàn)圖片轉(zhuǎn)base64,需要的可以參考下
    2024-04-04
  • 利用Matlab實(shí)現(xiàn)迭代適應(yīng)點(diǎn)算法

    利用Matlab實(shí)現(xiàn)迭代適應(yīng)點(diǎn)算法

    道格拉斯-普克算法(Douglas–Peucker?algorithm,亦稱為拉默-道格拉斯-普克算法、迭代適應(yīng)點(diǎn)算法、分裂與合并算法)是將曲線近似表示為一系列點(diǎn),并減少點(diǎn)的數(shù)量的一種算法。本文將利用Matlab實(shí)現(xiàn)這一算法,需要的可以參考一下
    2022-04-04
  • C語(yǔ)言中printf的兩種輸出對(duì)齊方式

    C語(yǔ)言中printf的兩種輸出對(duì)齊方式

    C語(yǔ)言中左對(duì)齊是C語(yǔ)言的默認(rèn)輸出方式,右對(duì)齊是一種特殊的輸出方式,左對(duì)齊和右對(duì)齊都對(duì)應(yīng)著一個(gè)已知的輸出寬度,輸出的字符串根據(jù)字符串的長(zhǎng)度在寬度上進(jìn)行補(bǔ)充,補(bǔ)充字符是空格,在使用printf函數(shù)輸出時(shí),需要在格式字符串中使用%-*s和%*s的格式來(lái)分別表示
    2024-02-02
  • C語(yǔ)言實(shí)現(xiàn)Linux下的socket文件傳輸實(shí)例

    C語(yǔ)言實(shí)現(xiàn)Linux下的socket文件傳輸實(shí)例

    這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)Linux下的socket文件傳輸?shù)姆椒?較為詳細(xì)的分析了C語(yǔ)言文件Socket文件傳輸客戶端與服務(wù)器端相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-06-06
  • NSString與C字符串之間的相互轉(zhuǎn)換

    NSString與C字符串之間的相互轉(zhuǎn)換

    本文將詳細(xì)介紹NSString與C字符串之間的相互轉(zhuǎn)換,需要的朋友可以參考下
    2012-11-11
  • C++連接mysql數(shù)據(jù)庫(kù)(改進(jìn)版)

    C++連接mysql數(shù)據(jù)庫(kù)(改進(jìn)版)

    C++是大家都非常熟悉的,也是大家平時(shí)辦公中經(jīng)常會(huì)用到的,下面這篇文章主要給大家介紹了關(guān)于C++連接mysql數(shù)據(jù)庫(kù)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • C/C++?Qt?數(shù)據(jù)庫(kù)QSql增刪改查組件應(yīng)用教程

    C/C++?Qt?數(shù)據(jù)庫(kù)QSql增刪改查組件應(yīng)用教程

    Qt?SQL模塊是Qt中用來(lái)操作數(shù)據(jù)庫(kù)的類,該類封裝了各種SQL數(shù)據(jù)庫(kù)接口,可以很方便的鏈接并使用。本文主要介紹了Qt數(shù)據(jù)庫(kù)QSql增刪改查組件的應(yīng)用教程,感興趣的同學(xué)可以學(xué)習(xí)一下
    2021-12-12
  • C++設(shè)計(jì)與實(shí)現(xiàn)ORM系統(tǒng)實(shí)例詳解

    C++設(shè)計(jì)與實(shí)現(xiàn)ORM系統(tǒng)實(shí)例詳解

    這篇文章主要為大家介紹了C++設(shè)計(jì)與實(shí)現(xiàn)ORM系統(tǒng)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 最新評(píng)論

    抚州市| 青田县| 吕梁市| 涟水县| 廊坊市| 合作市| 上高县| 久治县| 江都市| 吉首市| 桃园市| 寻乌县| 区。| 宁化县| 永城市| 米易县| 乐业县| 彩票| 衢州市| 肇源县| 常德市| 闽清县| 沁阳市| 安平县| 桃园市| 长宁县| 襄垣县| 万盛区| 栾川县| 调兵山市| 社旗县| 营口市| 买车| 五指山市| 阳东县| 灵川县| 通化县| 屏山县| 温州市| 万州区| 滦南县|