C语言,结构体

dag617712 2016-01-05 11:38:49
#include <stdio.h>
#include <string.h>

int main(void)
{
struct student
{
long int num;
char name[20];
char sex;
char addr[20];
}a={10101,"Li Lin",'M',"123 Beijing Road"};
struct student b;
b.num=10102;
b.name = "zhang fang";
printf("No.:%ld\nname:%s\nsex:%c\naddress:%s\n",a.num,a.name,a.sex,a.addr);
printf("name:%s\n",b.name);
getchar();
return 0;
}
为什么这个赋值语句不对,怎么改,谢谢!
...全文
157 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
均陵鼠侠 2016-01-05
  • 打赏
  • 举报
回复
dag617712 2016-01-05
  • 打赏
  • 举报
回复
可以解释一下我的错误原因么?谢谢!
paschen 2016-01-05
  • 打赏
  • 举报
回复
不能这样为字符数组赋值,你得用strcpy或者strcpy_s strcpy(b.name , "zhang fang");
Equim 2016-01-05
  • 打赏
  • 举报
回复
C语言的字符串实际上是char*,除了在定义时可以char* x="123"这样以外,之后不能用类似x="123"的语句来赋值。 string.h里有strcpy()函数可以用。如刚刚的情况可以写成strcpy(x,"123");
迈克老狼0411 2016-01-05
  • 打赏
  • 举报
回复
C语言 Char * 字符串 不能用 等于号赋值 在 MFC 中 CString 类型变量因为 运算符重载 可以 用 等于号赋值。
linzertling 2016-01-05
  • 打赏
  • 举报
回复
name如果是string类型的话就可以,char类型的数组不能这样赋值
paschen 2016-01-05
  • 打赏
  • 举报
回复
引用 2 楼 dag617712 的回复:
可以解释一下我的错误原因么?谢谢!
原因就是不能这样赋值!

69,364

社区成员

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

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