C语言中,sizeof能求字符串长度吗?
为什么我用sizeof(str)/sizeof(str[0])算出来结果都是8,无论这个字符串的长度是多少结果都是8。...
为什么我用sizeof(str)/sizeof(str[0])算出来结果都是8,无论这个字符串的长度是多少结果都是8。
展开
3个回答
展开全部
sizeof计算对象的大小是转换成对象类型的计算,也就是说,同种类型的不同对象其sizeof值都是一致的。
所以sizeof(str[])相当于sizeof(char)=1
另一个sizeof(str)相当于sizeof(char *),对于这种指针类型,在32位计算机中,一个指针变量的返回值通常是4(注意结果是以字节为单位),在64位系统中指针变量的sizeof通常为8,所以当你的系统是64位时,sizeof(str)=sizeof(char *)=8
如:
展开全部
sizeof是计算所占用内存大小的函数,sizeof(str)表示的是一个指针的大小。
要想求字符串长度要用strlen(str)。
要想求字符串长度要用strlen(str)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能,在C语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。求字符串长度用strlen()函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询