c语言赋值语句"a=(7+b,b++,a+7)"语法错在哪里?

是一道选择题,这个选项是错的,我想知道为什么.谢谢各位... 是一道选择题,这个选项是错的,我想知道为什么.谢谢各位 展开
 我来答
黄邦勇帅哥哥
2010-04-22 · TA获得超过3987个赞
知道大有可为答主
回答量:1199
采纳率:100%
帮助的人:479万
展开全部
少个分号也是一个错误,但可能不是楼主真正想问的错误。

依楼主题意,这是一个赋值语句,既然是赋值语句,那么也就是说变量a还没有初始,因此你的这个语句就是错误的。解释如下
a=(7+b,b++,a+7) 假设b是有初值的,因此7+b;和b++都没有错误,但是a是正在被初始化的变量,因此a还没有初值,因此a+7就是错误的,因为a还没有初值,所以在进行初始化之前不可以进行运算。所以这里是错误的。
kwydwuf
2010-04-22 · TA获得超过7409个赞
知道大有可为答主
回答量:1527
采纳率:71%
帮助的人:1997万
展开全部
后面缺少分号来结束这个赋值语句。
a=(7+b,b++,a+7);

其实这个赋值语句相当于先后执行以下语句:
7+b; //这个语句无意义
b++;
a=a+7;
也就是将最后一个a+7的值付给a。

因为连续用逗号分割的若干个表达式的值等于最后一个表达式的值.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zwhfly
2010-04-22 · TA获得超过123个赞
知道答主
回答量:77
采纳率:0%
帮助的人:48.6万
展开全部
这是一个用逗号表达式赋值的语句,表意不明确。
因为C标准并没有规定逗号表达式的求值顺序,所以可能先计算b++,也可能先计算7+b,所以此语句意义是编译器有关的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d52b5af
2010-04-22 · TA获得超过149个赞
知道答主
回答量:86
采纳率:100%
帮助的人:24万
展开全部
少个;号 这是个语句 语句必须以;号结束
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6c5eac102
2010-04-22 · TA获得超过1101个赞
知道小有建树答主
回答量:464
采纳率:0%
帮助的人:580万
展开全部
他是一个语句,那么就该以分号结束(;)
a=(7+b,b++,a+7);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式