Ⅰ c语言中逗号运算符是从左向右算,还是从右向左算啊
int a ;
a = 2 * 3, 4 * 5;
首先计算2*3,结果是6
接着计算a = 6(因=优先级大于,)
接下来计算4*5,结果是20
20是整个逗号表达式的值
-------------------------
由左向右运行,最后的表达式的值是整个逗号表达式的值
Ⅱ C语言逗号运算符
先算a=2,a的值为2;算b=5,b的值为5, 算a++,a的值为3,算b++,b的值为6,算a+b,结果为9,整个都好表达式的结果为9
Ⅲ C语言中逗号运算符是从左至右
掌握了以下4点,逗号表达式的运用就不是问题了: 1、逗号表达式格式:表达式1,(表达式2,表达式3,... 表达式n) 2、逗号表达式的计算过程为:从左往右逐个计算。 3、逗号表达式是作为一个整体的,它的最终结果就是最后一个表达式(即表达式n)的值。 4、逗号运算符的优先级别是所有运算符中最低的。
Ⅳ 关于c语言中的逗号运算符
等下。。答错了。。还需要理解一下神马是逗号表达式。。我前面说的和uuyyhhjj与delta_charlie的意思一样,但其实我们都搞错了。你可以自己把我们的例子都运行一下,看看是不是这样。下面我感觉应该是我正确的理解。
逗号表达式是所有运算符中优先级最低的,比赋值运算符还要低。他的作用就是把每个表达式都算一遍,并且把最后一个表达式返回的值作为逗号表达式的值。(把其他的都不管了)
像你说的那个,如果是
x=200,500;
(没有括号),x就会等于200,然后上面整个式子的值是500。
但是有括号的话, (200,500) 就是一个单独的式子,他的值是500,所以x=(200,500)最后赋值给x就是500
举几个例子,
x=(21,22,23,24,25);
这个里面,先算括号里的,前面的21到24算过后都被丢弃,括号里的表达式的值是25。之后执行赋值运算,x的值就变成括号里表达式的值,25了。
如果编译
int x;
int a;
x=(21,22,23,24,25);
cout<<"x="<<x<<endl;
会输出
x=25
x=21,22,23,24,25;
这行整个是一个表达式。
逗号运算符会分别计算表达式x=21、22、23 、24、25(单独一个数字也可以叫做表达式)。
然后他会用最后一个表达式作为逗号表达式的值。所以整个式子(整个一行)的值是25。但是因为这个值并没有返回给别的变量,他就也被丢弃了。
如果编译
int x;
x=21,22,23,24,25;
cout<<x;
输出是21。
a=(x=21,22,23,24,25);
这个里面,除了给x赋值,它又把逗号表达式的值25赋给a。
如果编译
int x;
int a;
a=(x=21,22,23,24,25);
cout<<"x="<<x<<endl;
cout<<"a="<<a<<endl;
会输出
x=21
a=25
a=(x=21,22,23,24,x*25);这个里,赋值给x之后又利用x计算了逗号表达式的值,21*25,最后把这个值赋给a
如果编译
int x;
int a;
a=(x=21,22,23,24,x*25);
cout<<"x="<<x<<endl;
cout<<"a="<<a<<endl;
会输出
x=21
a=525
简单来说,逗号的作用就是执行每一个表达式,然后用最后一个表达式作为他它的值。
看这个可能可以帮助你理解 http://blog.csdn.net/great_ghoul/article/details/1779768
如有疑问,欢迎您的追问。
Ⅳ c语言 逗号运算符
表达式
A,B
的值是B
所以
(x=8*2,x*4),x*2
的值是x*2
而计算过程是先算
(x=8*2,x*4)
完成之后,x=16,整个(x=8*2,x*4)的值是x*4也就是64
之后再计算x*2,由于 x=16,所以x*2=32
于是,整个表达式的值是32,x的值是16
Ⅵ c语言中逗号指的是什么意思
C语言中的逗号有两种意思:
1、表示"分隔号"的意思,就和语文中的逗号一个意思;
2、表示"逗号运算符"的意思,用它将2个表达式连接起来.例如:
3+5,6+8:就称为逗号表达式,又称为"顺序求值运算符"。逗号表达式的一般形式为表达式1,表达式2。
逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。例如:上面的表达式"3+5,6+8"的值是14。
(6)c语言逗号从哪里算扩展阅读:
运算符号:
比特右移(>>)运算符可以是算术(左端补最高有效位)或是逻辑(左端补 0)位移。例如,将 11100011 右移 3 比特,算术右移后成为 11111100,逻辑右移则为 00011100。
因算术比特右移较适于处理带负号整数,所以几乎所有的编译器都是算术比特右移。
运算符的优先级从高到低大致是:单目运算符、算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符(=)和逗号运算符。
数据类型:
C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
常量与变量:
常量其值不可改变,符号常量名通常用大写。变量是以某标识符为名字,其值可以改变的量。
标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。
数组:
如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。
网络-C语言
Ⅶ c语言中逗号运算符
逗号表达式的含义是,整个式子的值 等于 逗号表达式中的最后一个表达式的值。
Ⅷ C语言里的逗号的使用方法
C语言提供一种特殊放入运算符:逗号运算符
表达式1,表达式2
逗号表达式的求解过程是:
先求表达式1,再求表达式2
整个逗号表达式的值是表达式2的值,如表达式“3+5,6+8”的值为14。又如,逗号表达式“a=3*5,a*4”,赋值运算符的优先级别高于逗号运算符,因此应先求解a=3*5.经计算和赋值后得到a的值为15,然后求解a*4,得60,整个逗号表达式的值为60。
(8)c语言逗号从哪里算扩展阅读:
逗号运算
例子:
int a1,a2,b=2,c=7,d=5; // 第1行
a1=(++b,c--,d+3); // 第2行
a2=++b,c--,d+3; //第3行
对于给a1赋值的代码,有三个表达式,用逗号分开,所以最终的值应该是最后一个表达式的值,也就是(d+3)的值,为8,所以a1的值为8。
Ⅸ C语言中逗号运算符怎么用
一、用法:
1、当顺序点用,结合顺序是从左至右,用来顺序求值,完毕之后整个表达式的值是最后一个表达式的值。
main()
{int a,s,d;
s=2;
d=3;
a=12+(s+2,d+4);
}
先算括号内的值:s+2=4,d+4=7;括号内应为(4,7),括号内取值只取最后一个,如果没有括号则取第一个;a=12+7=19。
x=(y=3,(z = ++y+2) +5);
是首先把y赋值为3,把y递增为4,然后把4加上2,把结果6赋值给z,接下来把z加5最后把x赋为结果值11。
2、注意事项:逗号运算符(,)是C语言运算符中优先级最低的一种运算符。
二、其它用法:
1、在for里面的应用:
int i;int j;
for(i=0,j=0;i<5;i++,j++)
2、当分隔符:int i,j;
(9)c语言逗号从哪里算扩展阅读
运算符优先级:
1、优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
2、相同优先级中,按结合顺序计算。大多数运算是从左至右计算,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
3、基本的优先级需要记住:指针最优,单目运算优于双目运算。如正负号。先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 && 7等价于 (1 << (3 + 2))&&7.逻辑运算最后计算。
Ⅹ c语言中的逗号运算
最后a=0,b=0,c=5
先b+3
后a=b
主要是运算符优先级问题