读书人

C语言的一个语法有关问题

发布时间: 2013-09-28 10:01:20 作者: rapoo

C语言的一个语法问题
第一个程序是正确的写法


#include <stdio.h>

struct bar {
int a, b, c;
};

int main()
{
struct bar bar = {1, 2, 3};
return 0;
}


第二个程序会有语法错误,错误信息如下
expected expression before ‘{’ token

#include <stdio.h>

struct bar {
int a, b, c;
};

int main()
{
struct bar bar;
bar = {1, 2, 3};
return 0;
}


请教各位这是为什么呢?
[解决办法]
struct bar bar = {1, 2, 3};
这个写法只支持初始化操作,不能用来作赋值操作的吧!
[解决办法]
你的 {1,2,3}
在哪里会被看做是一个复合语句
而复合语句内部应该是语句[可选]
可你写的是一个表达式
而且 赋值符号右边应该是表达式 被你写成语句
........
就是说 你语法根本一点都没学过
应该写表达式的地方被你写成语句
应该写语句的地方被你写成表达式

[解决办法]
引用:
struct bar bar = {1, 2, 3};
这个写法只支持初始化操作,不能用来作赋值操作的吧!
支持一楼

读书人网 >C语言

热点推荐