C语言字符串数组问题
代码如下:#include<stdio.h>main(){chara[5]="abcde";puts(a);}请问,字符串数组要在末尾加上结束符'\0'。为何,上面的代码...
代码如下:
#include <stdio.h>
main()
{
char a[5] = "abcde";
puts(a);
}
请问,字符串数组要在末尾加上结束符'\0'。为何,上面的代码,能通过编译,而且能正常运行?不是缺少一位置吗? 展开
#include <stdio.h>
main()
{
char a[5] = "abcde";
puts(a);
}
请问,字符串数组要在末尾加上结束符'\0'。为何,上面的代码,能通过编译,而且能正常运行?不是缺少一位置吗? 展开
4个回答
展开全部
这么说吧!如果空间足够大的话,会在后面加上一个'\0',但在你这里由于空间在你赋正常值的时候满了,所以那个'\0'就不加了,但当输出的时候要识别'\0',一般情况下会输出“abcde”加乱码!因为内存中所分配的那5个字节空间后面有可能不是'\0‘字符!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a是数组,不是字符串。数组里存的是abcde五个字母。
追问
就是说,这个数组中应存放六个元素。可这里只要五个位置?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
六个元素,六个位置,刚好。a[0]=a, a[1]=b , a[2]=c , a[3]=d , a[4]=e , a[5]=\n 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询