马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我在学c语言的结构体一章,看了小甲鱼老师的视频后自己写了一个通讯录的小程序,但是在结构体数组的赋值时,两段相同的代码,只是数组长度不同,导致结果就不一样,哪位高手可以帮我看看是为什么?
#include <stdio.h>
void main()
{
struct book
{
char name[10];
char tel[11];
};
int i;
struct book person[3];
for(i=0;i<3;i++)
{
printf("input person %d name \n",i+1);
gets(person[i].name);
printf("input person %d tel \n",i+1);
gets(person[i].tel);
}
printf("\t\tname\t\ttelephone\n");
for(i=0;i<3;i++)
{
printf("\t%s\t\t%s\n",person[i].name,person[i].tel);
}
}
结果
如果把char tel[11]的长度改为char tel[20],结果就是
我定义的数组长度小为什么输出tel后还加上了name,定义长了反而没有了呢。求助各位,谢谢啦!
本帖最后由 vividzheng10010 于 2015-12-14 10:40 编辑
因为字符串会有结束符('\0');所以定义char tel[12]长度为12
手机号11位+'\0'
|