|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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'
|
|