实例分析C语言中strlen和sizeof的区别
C語(yǔ)言文章更新目錄
C/C++學(xué)習(xí)資源(百度云盤(pán)鏈接)
計(jì)算機(jī)二級(jí)資料(過(guò)級(jí)專(zhuān)用)
C語(yǔ)言學(xué)習(xí)路線(從入門(mén)到實(shí)戰(zhàn))
編寫(xiě)C語(yǔ)言程序的7個(gè)步驟和編程機(jī)制
C語(yǔ)言基礎(chǔ)-第一個(gè)C程序
C語(yǔ)言基礎(chǔ)-簡(jiǎn)單程序分析
VS2019編寫(xiě)簡(jiǎn)單的C程序示例
簡(jiǎn)單示例,VS2019調(diào)試C語(yǔ)言程序
C語(yǔ)言基礎(chǔ)-基本算法
C語(yǔ)言基礎(chǔ)-數(shù)據(jù)類(lèi)型
C語(yǔ)言中的輸入輸出函數(shù)
C語(yǔ)言流程控制語(yǔ)句
C語(yǔ)言數(shù)組——一維數(shù)組
C語(yǔ)言數(shù)組——二維數(shù)組
C語(yǔ)言數(shù)組——字符數(shù)組
C語(yǔ)言中常用的6個(gè)字符串處理函數(shù)
精心收集了60個(gè)C語(yǔ)言項(xiàng)目源碼,分享給大家
C語(yǔ)言核心技術(shù)——函數(shù)
C代碼是怎樣跑起來(lái)的?
C語(yǔ)言實(shí)現(xiàn)字符串的加密和解密
C語(yǔ)言——文件的基本操作
使用C語(yǔ)言鏈表創(chuàng)建學(xué)生信息并且將信息打印輸出
圖解C語(yǔ)言冒泡排序算法,含代碼分析
C語(yǔ)言中strlen和sizeof的區(qū)別
-
sizeof是操作符
-
strlen是函數(shù)
sizeof操作符返回的是參數(shù)所占的內(nèi)存數(shù),而 strlen函數(shù)返回的是參數(shù)的字符串長(zhǎng)度,不是所占用的內(nèi)存的大小。需要注意的是,strlen函數(shù)的參數(shù)是字符串,并且必須以串結(jié)束符“\0”結(jié)尾。看看下面的代碼。
/*** @author: 沖哥* @date: 2020/12/13 18:12* @description:*/ #include<stdio.h> #include<string.h>int main(){char str[10] = "hello";printf("字符串的長(zhǎng)度為:%d\n", strlen(str));printf("占用內(nèi)存的大小為:%d\n", sizeof(str));return 0; }運(yùn)行結(jié)果:
從運(yùn)行結(jié)果可以發(fā)現(xiàn),strlen和sizeof之間的區(qū)別在于,通過(guò)sizeof操作符得到的是定義的字符數(shù)組str占用的內(nèi)存大小,而通過(guò)strlen函數(shù)得到的是對(duì)其進(jìn)行初始化的字符長(zhǎng)度。
當(dāng)str是指針時(shí),結(jié)果會(huì)是怎樣的呢?
我們一起來(lái)看下面的代碼
/*** @author: 沖哥* @date: 2020/12/13 18:20* @description:*/ #include<stdio.h> #include<string.h>int main(){char *str = "hello";printf("strlen(str) = %d\n", strlen(str));printf("sizeof(str) = %d\n", sizeof(str));printf("sizeof(*str) = %d\n", sizeof(*str));return 0; }運(yùn)行結(jié)果:
從運(yùn)行結(jié)果發(fā)現(xiàn),str占用內(nèi)存的大小變?yōu)?,這是因?yàn)橹羔樤?2位計(jì)算機(jī)中占用4字節(jié),所以其值為4,而接下來(lái)的sizeof(str)為1,這是因?yàn)閟tr表示字符串首地址的內(nèi)容,在此就是字符H,占用內(nèi)存大小為1字節(jié)。
如果您覺(jué)得本篇文章對(duì)您有幫助,請(qǐng)轉(zhuǎn)發(fā)給更多的人
【C語(yǔ)言中文社區(qū)】是一個(gè)C語(yǔ)言/C++視頻教程、學(xué)習(xí)筆記、電子書(shū)、計(jì)算機(jī)二級(jí)資料等專(zhuān)注于C語(yǔ)言/C++編程學(xué)習(xí)者的干貨知識(shí)分享平臺(tái),精選深度文章,分享優(yōu)秀干貨類(lèi)、技能類(lèi)的學(xué)習(xí)資源,幫助學(xué)習(xí)中的你。
總結(jié)
以上是生活随笔為你收集整理的实例分析C语言中strlen和sizeof的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 使用C语言链表创建学生信息并且将信息打印
- 下一篇: C语言实例:将人员信息写入磁盘文件并读出