|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
【潜水】Joane 2018/12/14 星期五 上午 11:23:22
#include<stdio.h>
void main()
{
struct student
{
int num;
char *name;
char sex;
float score;
}boy1,boy2 = {1,"joane",'F',99.5};
boy1 = boy2;
printf("%d %s %s %f\n",boy1.num,boy1.name,boy1.sex,boy1.score);
printf("%d,%s,%s,%f",boy2.num,boy2.name,boy2.sex,boy2.score);
}
本帖最后由 sunrise085 于 2018-12-14 13:01 编辑
printf函数中有错误,char输出是%c,而不是%s。在第15、16行的printf中boy.sex那一项应该是%c,而不是%s。
我看楼上有人说结构体struct中字符串不能用指针,其实是可以的,只是用指针的话,运行中会有一个警告:warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
另外,结构体赋值也是没问题的。
若是打算解决那个警告的话,可以将指针声明为const,然后就没问题了。
- #include <stdio.h>
- void main(void) {
- struct student
- {
-
- int num;
- const char *name;
- char sex;
- float score;
- }boy1,boy2 = {1,"joane",'F',99.5};
- boy1 = boy2;
- printf("%d %s %c %f\n",boy1.num,boy1.name,boy1.sex,boy1.score);
- printf("%d,%s,%c,%f",boy2.num,boy2.name,boy2.sex,boy2.score);
-
- }
复制代码
|
-
截图
|