一个关于struct的问题

daniel851105 2009-11-09 03:29:11
#include <stdio.h>
#include "stdafx.h"

struct MyStruct
{
int a;
int b;
}mystruct, *pStruct, strArray[10];

typedef struct NewStruct
{
int a;
int b;
}newstruct;

int _tmain(int argc, _TCHAR* argv[])
{
mystruct = {1, 2}; // 这一句会产生编译出错 “Error error C2059: syntax error”
mystruct.a = 1;
mystruct.b = 2;
printf("mystruct.a = %d, mystruct.b = %d\n", mystruct.a, mystruct.b);
system("PAUSE");
return 0;
}

main的第一句mystruct = {1, 2}; 会产生编译问题,但是用 struct MyStruct s = {1,2} 不会编译出错,这是为什么呢?
...全文
136 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
liem 2009-11-09
  • 打赏
  • 举报
回复
mystruct = {1, 2}; // 这一句会产生编译出错 “Error error C2059: syntax error”

mystruct是已经定义过的全局变量,因此这里的=是赋值号。而{1,2}是初始化列表。
zhaixingchen 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jackyjkchen 的回复:]
这是初始化,正如同
char a[10] = {0};是对的
但是
char a[10];
a ={0};就错了
[/Quote]
赞一下
Knowledge_is_power 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jackyjkchen 的回复:]
这是初始化,正如同
char a[10] = {0};是对的
但是
char a[10];
a ={0};就错了
[/Quote]
同意!!!
sonnno 2009-11-09
  • 打赏
  • 举报
回复
struct MyStruct s = {1,2}相当于定义是初始化值
liuhaifeng1976 2009-11-09
  • 打赏
  • 举报
回复
basketballn 2009-11-09
  • 打赏
  • 举报
回复
MARK
codesnail 2009-11-09
  • 打赏
  • 举报
回复
是类型
gnixougil 2009-11-09
  • 打赏
  • 举报
回复
好似是这么回事嘿嘿
daniel851105 2009-11-09
  • 打赏
  • 举报
回复
感谢 xixiaoliu 和 jackyjkchen
The_facE 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lylm 的回复:]
mystruct = {1, 2};              // 这一句会产生编译出错 “Error error C2059: syntax error”
>>mysturct 是个类型,没有变量,自然有问题
[/Quote]

走眼了吧?
jackyjkchen 2009-11-09
  • 打赏
  • 举报
回复
这是初始化,正如同
char a[10] = {0};是对的
但是
char a[10];
a ={0};就错了
lylm 2009-11-09
  • 打赏
  • 举报
回复
mystruct = {1, 2}; // 这一句会产生编译出错 “Error error C2059: syntax error”
>>mysturct 是个类型,没有变量,自然有问题
xixiaoliu 2009-11-09
  • 打赏
  • 举报
回复
这种“赋值”方式只能在定义变量的时候用:
MyStruct mystruct = {1, 2};

70,021

社区成员

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

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