相关疑难解决方法(0)

逗号运算符如何工作

逗号运算符如何在C++中工作?

例如,如果我这样做:

a = b, c;  
Run Code Online (Sandbox Code Playgroud)

最终是否等于b或c?

(是的,我知道这很容易测试 - 只是在这里记录,以便有人快速找到答案.)

更新: 此问题在使用逗号运算符时暴露了细微差别.只是记录下来:

a = b, c;    // a is set to the value of b!

a = (b, c);  // a is set to the value of c!
Run Code Online (Sandbox Code Playgroud)

这个问题实际上是受到代码中的拼写错误的启发.打算做什么

a = b;
c = d;
Run Code Online (Sandbox Code Playgroud)

转换成

a = b,    //  <-  Note comma typo!
c = d;
Run Code Online (Sandbox Code Playgroud)

c++ comma-operator

165
推荐指数
6
解决办法
5万
查看次数

C逗号运算符的使用

你看到它用于for循环语句,但它在任何地方都是合法的语法.您在其他地方找到了什么用途,如果有的话?

c c++ comma-operator

88
推荐指数
10
解决办法
2万
查看次数

C语言中循环条件下的逗号运算符

    #include<stdio.h>
    main()
    {
        int i;
        for(i=0;i<0,5;i++)
        printf("%d\n",i);
    }
Run Code Online (Sandbox Code Playgroud)

我只想在for循环的条件下解释"i <0,5".

即使我把它设为"i> 0,5",我们也得到相同的输出.

有人可以解释一下这种情况是如何起作用的.(使用逗号运算符的条件,我已经搜索过http://en.wikipedia.org/wiki/Comma_o​​perator但根本没有帮助)

c comma

19
推荐指数
2
解决办法
7434
查看次数

为什么将括号括在逗号分隔值列表周围会改变赋值?

请考虑以下代码,

    int i;

    i = 1,2,3,4,5;
    printf("First time i = %d\n",i);

    i = (1,2,3,4,5);
    printf("Second time i = %d\n",i);   
Run Code Online (Sandbox Code Playgroud)

输出:

第一次i = 1

第二次i = 5


为什么括号使逗号运算符取最后一个值而没有括号它取第一个值?

提前致谢.

c c++ syntax

18
推荐指数
4
解决办法
2324
查看次数

请在本程序中解释逗号操作员

请解释一下这个程序的输出:

int main()
{    
    int a,b,c,d;  
    a=10;  
    b=20;  
    c=a,b;  
    d=(a,b);  
    printf("\nC= %d",c);  
    printf("\nD= %d",d);  
}
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

C= 10  
D= 20
Run Code Online (Sandbox Code Playgroud)

我怀疑"运营商"在这里做了什么?
我使用代码块编译并运行程序.

c comma

14
推荐指数
3
解决办法
715
查看次数

C++'int x =(anyInt1,anyInt2);' 意思?

可能重复:
为什么3,758,096,384 << 1给出768

今天我发现以下代码用gcc编译:

#include <iostream>

int main()
{
    int x = (23,34);

    std::cout << x << std::endl; // prints 34

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么编译?的意义是什么 (..., ...)?

c++ syntax int

6
推荐指数
2
解决办法
1661
查看次数

C:解释if(exit(0),0){}代码行

我正在学习C并且作为练习,我正在尝试编写一个没有任何分号的简单程序.我在替换return 0语句方面遇到了一些麻烦,但我发现这是(唯一的)方法在C:中做到这一点if(exit(0),0){}.

这个陈述究竟是如何运作的?

我知道,exit()stdlib一个void函数,但我不明白是什么,0在部分if作品(其余的我很清楚).

c exit

3
推荐指数
2
解决办法
655
查看次数

如何使"i + = x"作为"i ++"?

以下代码

int i=0;
while(i<10) {
   printf("%d\n", i++);
}
Run Code Online (Sandbox Code Playgroud)

相当于

int i=0;
while(i<10) {
   printf("%d\n", i); i++;
}
Run Code Online (Sandbox Code Playgroud)

但是下面的代码

int i=0;
while(i<10) {
   printf("%d\n", i+=2);
}
Run Code Online (Sandbox Code Playgroud)

相当于

int i=0;
while(i<10) {
   i+=2; printf("%d\n", i);
}
Run Code Online (Sandbox Code Playgroud)

如何使它等同于

int i=0;
while(i<10) {
   printf("%d\n", i); i+=2;
}
Run Code Online (Sandbox Code Playgroud)

同样的 i++

c

-2
推荐指数
1
解决办法
440
查看次数

标签 统计

c ×6

c++ ×4

comma ×2

comma-operator ×2

syntax ×2

exit ×1

int ×1