一个简单的结构体赋值问题,请帮忙答疑

lilin0691 2010-09-26 10:18:45
#include "stdafx.h"
#include "stdio.h"
struct date
{
int year;
int month;
int day;
};
struct student
{
int num;
char name[20];
int age;
char sex;
char add[30];
struct date birthday;
}student1;

void main(int argc, char* argv[])
{
student1.num = 1001;
//student1.name = {'d'};---问题:为什么在这不能给字符数组赋值?但可以给int型赋值
student1.birthday.year = 1980;
printf("%d\n",student1.num);
printf("%d\n",student1.birthday.year);

}

小弟刚学C 请大家帮忙指点一下!
因为小弟的分不多,所以请大家体谅一下!
...全文
58 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lilin0691 2010-09-26
  • 打赏
  • 举报
回复
谢谢大家的答疑!
stjay 2010-09-26
  • 打赏
  • 举报
回复
student1.name = {'d'};
这种形式只能在定义变量时使用
char name[20] = {'d'};
char name[20] = "d";

jjjjjj25025 2010-09-26
  • 打赏
  • 举报
回复
student1.name 是数组名
是name[20]的固有地址
不能给它赋值



justkk 2010-09-26
  • 打赏
  • 举报
回复
2楼不是给你答复了吗,语法不对,{}只是在初始化的时候使用
华悟空 2010-09-26
  • 打赏
  • 举报
回复
楼主可能是想到了字符数组初始化。但字符数组赋值是不能这样书写的。
lilin0691 2010-09-26
  • 打赏
  • 举报
回复
谢谢1楼的 还想请问下,就是我那种赋值方法为什么不行?
kyzy_yy_pm 2010-09-26
  • 打赏
  • 举报
回复
struct student
{
int num;
char *name;
int age;
char sex;
char add[30];
struct date birthday;
}student1;

student1.name = "zhangsna";
Q446512799 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 believe_me 的回复:]
strcpy(student1.name, "name1");
ayw215 2010-09-26
  • 打赏
  • 举报
回复
student1.name = {'d'};---问题:为什么在这不能给字符数组赋值?但可以给int型赋值
---
里面的name是char数组,不是结构体,所以不能用括号撒
believe_me 2010-09-26
  • 打赏
  • 举报
回复
strcpy(student1.name, "name1");

69,379

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧