c语言中关于字符数组长度的问题。
假设这样定义一个字符串:charc[]={"iamhappy"},教材上说,此时数组c的长度不是10,而是11,因为字符串常量的最后由系统加上一个'\0'。然而我自己在电...
假设这样定义一个字符串:char c[]={"i am happy"},教材上说,此时数组c的长度不是10,而是11,因为字符串常量的最后由系统加上一个'\0'。
然而我自己在电脑上试了一试,定义成char c[10]={"i am happy"},最后程序运行正常,不是说数组长度是11吗,为什么我定义成10了还是能正常运行? 展开
然而我自己在电脑上试了一试,定义成char c[10]={"i am happy"},最后程序运行正常,不是说数组长度是11吗,为什么我定义成10了还是能正常运行? 展开
展开全部
电脑会分配临时内存单元储存‘\0’,但若果你定义了两个数组,那么这个临时单元储存就会变成第二个数组的第一个内存单元,故需要规范数组长度比实际长就为了防止出现非法访问内存单元
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最后那个'\0'是系统自动加上去的,当长度被限定之后,且内容长度正好是数组下标长度时,数组c长度就成了10.。有点逻辑上的误解。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询