结构体解决方案
结构体
#include "stdio.h"
main()
{
struct student
{
int num;
char name[6];
char sex[6];
char addr[15];
}a={2111404114,"helen","female","jiangxiganzhou"};
printf(" No:%d\n name:%s\n sex:%s\n addr:%s\n",a.num,a.name,a.sex,a.addr);
return 0;
}
这个是怎么回事?
------解决思路----------------------
学习了,不好意思。
------解决思路----------------------
把它整体移到main函数外,是不是就秒懂了?!放在函数外是全局的类型定义(常见方式),放在函数内是局部的类型定义(不常用方式,定义一个局部结构类型,出来函数就不可用了,这样的需求非常少),后面紧接着定义了一个变量a并用{ }方式初始化结构体成员
------解决思路----------------------
这个要看编译环境,我使用vs2013,编译是无法通过的,因为“female”字符串的长度已经超过了6,无法初始化。严格的说,这种编译错误提示是有益的。
#include "stdio.h"
main()
{
struct student
{
int num;
char name[6];
char sex[6];
char addr[15];
}a={2111404114,"helen","female","jiangxiganzhou"};
printf(" No:%d\n name:%s\n sex:%s\n addr:%s\n",a.num,a.name,a.sex,a.addr);
return 0;
}
这个是怎么回事?
------解决思路----------------------
学习了,不好意思。
------解决思路----------------------
把它整体移到main函数外,是不是就秒懂了?!放在函数外是全局的类型定义(常见方式),放在函数内是局部的类型定义(不常用方式,定义一个局部结构类型,出来函数就不可用了,这样的需求非常少),后面紧接着定义了一个变量a并用{ }方式初始化结构体成员
struct student
{
int num;
char name[6];
char sex[6];//为什么赋值低于6运行结果是连接下一个字符串一起输出呢?
char addr[15];
}a={2111404114,"helen","female","jiangxiganzhou"};
main()
{
printf(" No:%d\n name:%s\n sex:%s\n addr:%s\n",a.num,a.name,a.sex,a.addr);
return 0;
}
------解决思路----------------------
这个要看编译环境,我使用vs2013,编译是无法通过的,因为“female”字符串的长度已经超过了6,无法初始化。严格的说,这种编译错误提示是有益的。