加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

逗号而不是分号,为什么这个语句在C中没有给出语法错误?

发布时间:2020-12-16 10:34:15 所属栏目:百科 来源:网络整理
导读:#include iostreamusing namespace std;int main() { // your code goes here int a = 10; printf("n a = %d",a),int(3); return 0;} 这段代码在C(http://ideone.com/RSWrxf)中运行良好,但是相同的printf行在C中不起作用.为什么它在C中有效?我对两个语句之
#include <iostream>
using namespace std;

int main() {
    // your code goes here
    int a  = 10;
    printf("n a = %d",a),int(3);
    return 0;
}

这段代码在C(http://ideone.com/RSWrxf)中运行良好,但是相同的printf行在C中不起作用.为什么它在C中有效?我对两个语句之间允许的逗号和C/C++编译差异感到困惑.

解决方法

int(3)在C中是无效的语法.你可以这样写它:

printf("n a = %d",(int)3;

甚至只是:

printf("n a = %d",3;

这将在C和C中编译.

请注意,printf与其后面的冗余表达式之间的逗号只是comma operator. printf调用和下面的表达式的结果都将被丢弃.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读