C语言简单的数组问题。
我听老师说,C语言数组最后是以'\0‘结束的,也就是说一个容量为5的数组它只可以放4个数,最后一个是’\0’,但我今天试了一下,在一个容量为5的数组里放了5个数,然后通过...
我听老师说,C语言数组最后是以'\0‘结束的,也就是说 一个容量为 5的 数组它只可以放4个数,最后一个是 ’\0’ ,但我今天试了一下,在一个容量为 5的数组里放了 5个数,然后通过 WATCH来看,结果 a[4]里 竟然显示为 我输入的那个数字,然后我又试了一下
#include "stdio.h"
main()
{
int a[5]={1,2,3,4};
int i;
for(i=0;i<=4;i++)
{
if('\0'==a[i])
printf("%d\n",i);
}
}
结果 输出是 4
所以我就疑问了, 请高手解答。 展开
#include "stdio.h"
main()
{
int a[5]={1,2,3,4};
int i;
for(i=0;i<=4;i++)
{
if('\0'==a[i])
printf("%d\n",i);
}
}
结果 输出是 4
所以我就疑问了, 请高手解答。 展开
展开全部
以"\0"结束针对的是字符型数组;运行下下面的那段代码你就会明白!
#include<iostream>
using namespace std;
int main()
{
char a[8]="student";
char b[8]={'s','t','u','d','e','n','t'};
int c[8]={1,2,3,4,5,6,7,8};
cout<<a[8]<<endl;//输出的是空白,即"\0"
cout<<b[8]<<endl;//出错了
cout<<c[8]<<endl;//出错了
return 0;
}
#include<iostream>
using namespace std;
int main()
{
char a[8]="student";
char b[8]={'s','t','u','d','e','n','t'};
int c[8]={1,2,3,4,5,6,7,8};
cout<<a[8]<<endl;//输出的是空白,即"\0"
cout<<b[8]<<endl;//出错了
cout<<c[8]<<endl;//出错了
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a[4]就是数组的最后一个元素了 没错啊 就是空 定义 int a[5] 它的元素是从 a[0]开始的而不是a[1].
追问
同学,你还得好好学习啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-01-24
展开全部
char a[5];
gets(a);//你输入多少个数,输出照样是多少个,如果大于4个,已经越界了
puts(a);
gets(a);//你输入多少个数,输出照样是多少个,如果大于4个,已经越界了
puts(a);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询