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

C語言中的strlen()和sizeof()對比分析

 更新時間:2023年03月07日 09:23:20   作者:qq_44976409  
這篇文章主要介紹了C語言中的strlen()和sizeof()區(qū)別對比,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

C語言中的strlen()和sizeof()對比

在C語言中,沒有字符串這種變量類型,一般用兩種方法實現(xiàn)。
一是用雙引號生成常量字符串再賦值給一個指針,指針指向的是該常量字符串的首字符地址;
二是利用字符數(shù)組,把字符存儲在數(shù)組中。值得注意的是,利用字符數(shù)組創(chuàng)建字符串的時候記得把’\0’存進(jìn)去(‘\0’本身是一個字符,占一個字節(jié)),因為很多對字符進(jìn)行操作的庫函數(shù)或多或少都跟’\0’有關(guān)系,或者說’\0’是字符串結(jié)束的官方標(biāo)志。

字符串
char arr[]={'a','a','a','a','a','a'}
char *str = "aaaaaa"

定義:
**1. strlen函數(shù):**計算的是字符串str的長度,從字符的首地址開始遍歷,以 ‘\0’ 為結(jié)束標(biāo)志,然后將計算的長度返回,計算的長度并不包含’\0’。

當(dāng)我們遇到“\0"時我們就要停止讀取,此時“\0"前字符的個數(shù)就是字符串的長度,注意:這里的“\0"只是結(jié)束標(biāo)志,僅僅告訴我們strlen函數(shù)讀取到這里就要停止了,“\0"不算做一個字符?。?!

**2. sizeof函數(shù):**相比strlen函數(shù),sizeof就簡單多了,sizeof其實就是一個運(yùn)算符,主要用來計算所占空間字節(jié)的大小。

指針字節(jié):
指針 16位 2個字節(jié)
指針 32位 4個字節(jié)
指針 64位 8個字節(jié)

32位系統(tǒng):
char 1個字節(jié)
short 2個字節(jié)
int 2個字節(jié)
long 4個字節(jié)
char* 4個字節(jié)
int* 4個字節(jié)
int** 4個字節(jié)

64位系統(tǒng):
char 1個字節(jié)
short 2個字節(jié)
int 4個字節(jié)(x 2)
long 8個字節(jié)(x 2)
char* 4個字節(jié)
int* 4個字節(jié)
int** 4個字節(jié)

  • 字符串常量放在靜態(tài)存儲區(qū),為只讀,不能再通過指針修改,例如chr *p=“xiaolong”
  • strlen遇到\0結(jié)束,長度不包括\0
  • sizeof計算占用多少字節(jié)時,\0也包含在內(nèi)

1. strlen()

int main () {
	
	char *str="xiaolong";
	printf("%d\n",strlen(str));
	return 0;	
}

輸出:8
#include <stdio.h>
#include <string.h>
int main () {
	
	char str[]="xiaolong";
	printf("%d\n",strlen(str));
	return 0;	
}
輸出:8
#include <string.h>
int main () {
	
	char str[10]="xiaolong";
	printf("%d\n",strlen(str));
	return 0;	
}

雖然數(shù)組大小是10,但是編譯器自動在xiaolong后面添加了\0 ,因此長度不是10而是8
輸出:8

2. sizeof()

#include <stdio.h>
#include <string.h>
int main () {
	
	char str[10]="xiaolong";
	printf("%d\n",sizeof(str));
	return 0;	
}

指定大小為n的char數(shù)組無論如何都是占用n個字節(jié),例如此處10字節(jié)
輸出:10
#include <stdio.h>
#include <string.h>
int main () {
	
	char *str="xiaolong";
	printf("%d\n",sizeof(str));
	return 0;	
}

由于是指針,32位機(jī)器指針占4個字節(jié)
輸出:4
#include <stdio.h>
#include <string.h>
int main () {
	
	char str[]="xiaolong";
	printf("%d\n",sizeof(str));
	return 0;	
}

結(jié)果不是8而是9,因為默認(rèn)在后面添加了一個\0,  \0也算一個字節(jié)
輸出:9

1.size_t 的定義
size_t是一種機(jī)器相關(guān)的無符號類型,它被設(shè)計的足夠大以便能表示內(nèi)存中任意對象的大小。
在C語言中頭文件為stddef.h,在C++語言中頭文件為cstddef。
size_t 是sizeof的返回類型,在64位中是unsigned long int,在32位中是unsigned int。
2.使用
size_t類型通常用于循環(huán)、數(shù)組索引、大小的存儲和地址運(yùn)算。數(shù)組的下標(biāo)通常定義為size_t類型。size_t可以跨平臺,并且具有高代碼的可移植性、有效性或者可讀性。

參考資料:https://blog.csdn.net/shenlong1356/article/details/106321092/

到此這篇關(guān)于C語言中的strlen()和sizeof()對比的文章就介紹到這了,更多相關(guān)C語言 strlen()和sizeof()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++統(tǒng)計中英文大小寫字母、數(shù)字、空格及其他字符個數(shù)的方法

    C++統(tǒng)計中英文大小寫字母、數(shù)字、空格及其他字符個數(shù)的方法

    這篇文章主要介紹了C++統(tǒng)計中英文大小寫字母、數(shù)字、空格及其他字符個數(shù)的方法,涉及C++字符串的遍歷與簡單判定技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-05-05
  • c++ 解決無法打印uint8_t 類型變量的問題

    c++ 解決無法打印uint8_t 類型變量的問題

    這篇文章主要介紹了c++ 解決無法打印uint8_t 類型變量的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 詳解C++中動態(tài)內(nèi)存管理和泛型編程

    詳解C++中動態(tài)內(nèi)存管理和泛型編程

    這篇文章主要為大家詳細(xì)介紹了C++中動態(tài)內(nèi)存管理和泛型編程的相關(guān)資料,文中示例代碼講解詳細(xì),對我們學(xué)習(xí)C++具有一定幫助,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一
    2022-10-10
  • Qt實現(xiàn)SqlTableModel映射組件應(yīng)用小結(jié)

    Qt實現(xiàn)SqlTableModel映射組件應(yīng)用小結(jié)

    在Qt中提供了QSqlTableModel模型類,它為開發(fā)者提供了一種直觀的方式來與數(shù)據(jù)庫表格進(jìn)行交互,本文就來介紹一下Qt實現(xiàn)SqlTableModel映射組件應(yīng)用小結(jié),感興趣的可以了解一下
    2023-12-12
  • C++實現(xiàn)動態(tài)分配const對象實例

    C++實現(xiàn)動態(tài)分配const對象實例

    這篇文章主要介紹了C++實現(xiàn)動態(tài)分配const對象實例,包括了const對象的創(chuàng)建、刪除及應(yīng)用實例,需要的朋友可以參考下
    2014-10-10
  • C語言實現(xiàn)內(nèi)存函數(shù)的示例代碼

    C語言實現(xiàn)內(nèi)存函數(shù)的示例代碼

    本文主要介紹了C語言實現(xiàn)內(nèi)存函數(shù)的示例代碼,包括memcpy、memmove、memset和memcmp的使用,具有一定的參考價值,感興趣的可以了解一下
    2025-02-02
  • C++實現(xiàn)學(xué)生檔案管理系統(tǒng)

    C++實現(xiàn)學(xué)生檔案管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)學(xué)生檔案管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 基于C++實現(xiàn)職工管理系統(tǒng)

    基于C++實現(xiàn)職工管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了基于C++實現(xiàn)職工管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C語言簡明清晰講解枚舉

    C語言簡明清晰講解枚舉

    枚舉法的本質(zhì)就是從所有候選答案中去搜索正確的解,枚舉算法簡單粗暴,他暴力的枚舉所有可能,盡可能地嘗試所有的方法,感興趣的朋友來看看吧
    2022-05-05
  • CRITICAL_SECTION用法案例詳解

    CRITICAL_SECTION用法案例詳解

    這篇文章主要介紹了CRITICAL_SECTION用法案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評論

大方县| 庆元县| 景泰县| 石屏县| 沈阳市| 宜州市| 东乌珠穆沁旗| 凌海市| 长白| 呼玛县| 武穴市| 师宗县| 迭部县| 庆阳市| 陵水| 连江县| 东阳市| 安义县| 平定县| 依安县| 枣强县| 棋牌| 太谷县| 维西| 黎平县| 息烽县| 云浮市| 南召县| 磐安县| 遵义县| 邯郸县| 二手房| 丹巴县| 曲阳县| 泉州市| 巴南区| 尤溪县| 孝感市| 龙江县| 枝江市| 多伦县|