C语言中,sizeof能求字符串长度吗?

为什么我用sizeof(str)/sizeof(str[0])算出来结果都是8,无论这个字符串的长度是多少结果都是8。... 为什么我用sizeof(str)/sizeof(str[0])算出来结果都是8,无论这个字符串的长度是多少结果都是8。 展开
 我来答
leeming6666
2020-04-16 · TA获得超过3452个赞
知道大有可为答主
回答量:3240
采纳率:85%
帮助的人:723万
展开全部

sizeof计算对象的大小是转换成对象类型的计算,也就是说,同种类型的不同对象其sizeof值都是一致的。

所以sizeof(str[])相当于sizeof(char)=1

另一个sizeof(str)相当于sizeof(char *),对于这种指针类型,在32位计算机中,一个指针变量的返回值通常是4(注意结果是以字节为单位),在64位系统中指针变量的sizeof通常为8,所以当你的系统是64位时,sizeof(str)=sizeof(char *)=8

如:

IT圈新鲜事
2020-04-16 · 记录IT技术领域中的新鲜事
IT圈新鲜事
采纳数:1722 获赞数:11351

向TA提问 私信TA
展开全部
sizeof是计算所占用内存大小的函数,sizeof(str)表示的是一个指针的大小。
要想求字符串长度要用strlen(str)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小yi带你看
2020-04-16 · TA获得超过157个赞
知道小有建树答主
回答量:644
采纳率:87%
帮助的人:35.6万
展开全部
不能,在C语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。求字符串长度用strlen()函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式