A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wanghui001001 中级黑马   /  2015-8-12 19:06  /  998 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

比如逗号运算符
#include <stdio.h>

int main(int argc, const char * argv[]) {

    int a = 1,b = 2,end = 0;
    end = (a++,a + b,b+=);
    printf("end = %d",end);

    return 0;
}

其中end那行肯定会出警告,就是因为a + b没有赋值给一个变量是不是?求解


12 个回复

倒序浏览
对end赋值那个一行,逗号操作符连接的最后一个表达式缺少一个操作数,b+=a?
回复 使用道具 举报
b+=   后少了东西
回复 使用道具 举报
这是我打错了,我随手打的,我代码上打得时b++,应该还是因为a + b吧?
回复 使用道具 举报
新生heima 发表于 2015-8-12 19:24
对end赋值那个一行,逗号操作符连接的最后一个表达式缺少一个操作数,b+=a? ...

这是我打错了,我随手打的,我代码上打得时b++,应该还是因为a + b吧?
回复 使用道具 举报
ylxkab 发表于 2015-8-12 19:48
b+=   后少了东西

嗯,这个是我随手打得,如果这个少东西的话就应该是bug了,不是警告了,我代码上打得时b++
回复 使用道具 举报
这个又错误吗》》!|
回复 使用道具 举报
wanghui001001 发表于 2015-8-12 20:18
这是我打错了,我随手打的,我代码上打得时b++,应该还是因为a + b吧?

我感觉应该是,你可以把a+b去掉,反正不影响,最终结果,看看会不会还有警告?
回复 使用道具 举报
飓风少年 发表于 2015-8-12 22:21
这个又错误吗》》!|

看评论我有个地方写错了,如果那是对的,有警告但不是bug
回复 使用道具 举报
新生heima 发表于 2015-8-12 22:49
我感觉应该是,你可以把a+b去掉,反正不影响,最终结果,看看会不会还有警告? ...

不去掉也行,在定义一个变量,把a + b的值赋给它就行了
回复 使用道具 举报
wanghui001001 发表于 2015-8-13 00:07
不去掉也行,在定义一个变量,把a + b的值赋给它就行了

这确实!
回复 使用道具 举报
有些编译器会出错吧,我win上运行完全没问题,而且也看不出你这代码有什么问题(当然我指b+=改成b++后)
回复 使用道具 举报
无效的代码都会有警告~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马