逗号运算符如何在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) 你看到它用于for循环语句,但它在任何地方都是合法的语法.您在其他地方找到了什么用途,如果有的话?
#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_operator但根本没有帮助)
请考虑以下代码,
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
为什么括号使逗号运算符取最后一个值而没有括号它取第一个值?
提前致谢.
请解释一下这个程序的输出:
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)
我怀疑"运营商"在这里做了什么?
我使用代码块编译并运行程序.
今天我发现以下代码用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并且作为练习,我正在尝试编写一个没有任何分号的简单程序.我在替换return 0
语句方面遇到了一些麻烦,但我发现这是(唯一的)方法在C:中做到这一点if(exit(0),0){}
.
这个陈述究竟是如何运作的?
我知道,exit()
从stdlib
一个void函数,但我不明白是什么,0
在部分if
作品(其余的我很清楚).
以下代码
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++