逗号运算符的用法,逗号表达式怎么用
逗号运算符的用法,逗号表达式怎么用详细介绍
本文目录一览: c语言中逗号运算符的功能和使用方法是什么?
C 语言中,逗号(,)也可以是运算符,称为逗号运算符(Comma Operator)。逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式,称为逗号表达式。其一般形式为:\x0d\x0a\x0d\x0a 子表达式1, 子表达式2, ..., 子表达式n\x0d\x0a\x0d\x0a例如:\x0d\x0a\x0d\x0a a + b, c = b, c++\x0d\x0a\x0d\x0a逗号运算符的优先级是所有运算符中级别最低的,通常配合 for 循环使用。逗号表达式最右边的子表达式的值即为逗号表达式的值。上例中,c++ 的值(c 自增之前的值)即为该表达式的值。\x0d\x0a\x0d\x0a 逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算。也就是说,逗号运算符是一个序列点,其左边所有副作用都结束后,才对其右边的子表达式进行运算。因此,上例中,c 得到 b 的值后,才进行自增运算。
逗号表达式的运算法则是什么?
1、逗号表达式的运算过程为:从左往右逐个计算表达式。
2、逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。
3、逗号运算符的优先级别在所有运算符中最低。
逗号表达式相关的题:
例题1:(a = 3,b = 5,b+ = a,c = b* 5),求逗号表达式的值?
答案:40。
如:
(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14;a=(a=3*5,a*4)的值是60,其中(a=3*5,a*4)的值是60, a的值在逗号表达式里一直是15,最后被逗号表达式赋值为60,a的值最终为60。
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。
扩展资料:
逗号运算
例子:
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。
参考资料来源:百度百科-逗号运算符
逗号表达式怎么用
逗号表达式的使用:一个很多步骤的功能,需要有进度提示,需要分配每个过程的起点和步数,而起点和前面的步数有关系。所以,需要一个变量来累计步数,可以将变量隐藏在宏中,而宏用逗号表达式实现。
表达式1,表达式2,表达式3,...... ,表达式n。例:x=2,y=3,z=4。逗号表达式具有从左至右的结合性,即先求解表达式1,然后依次求解表达式2,直到表达式n的值。表达式n的值就是整个逗号表达式的值。上述的逗号表达式的值就是表达式z=4的值4。
扩展资料
逗号运算符,c语言提供一种特殊的运算符,优先级别最低,它将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。在c语言中,逗号除了作为分隔符,还可以用作一种运算符--逗号运算符,用逗号运算符将几个表达式连接起来。
逗号表达式的要领:逗号表达式的运算从左往右逐个计算表达式。逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。 逗号运算符的优先级别在所有运算符中最低。
如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14,a=(a=3*5,a*4)的值是60,而(a=3*5,a*4)的值是60, a的值在逗号表达式里一直是15,最后被逗号表达式赋值为60,a的值最终为60。
参考资料百度百科--逗号表达式
C语言中逗号运算符怎么用?
逗号运算符的作用是将若干表达式连接起来。它的优先级别在所有运算符中是最低的,结合方向是"自左至右"的。其值是最后一个表达式的,其值是最后一个表达式的,其间所有的都要计算。
逗号运算(,)是一个多元运算,逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式,称为逗号表达式。其一般形式为:子表达式1, 子表达式2, ..., 子表达式n
它的整个的值都是最后一个表达式的值,这里所说的值是从左向右运算的。逗号运算符的优先级是所有运算符中级别最低的。
例如:
int a=(表达式1,表达式2); //则a的结果是表达式2的结果
关于逗号运算符
6,6
(x=6,x+1,y=6,x+y)
这个只有两个赋值才会改变x,y的值。所以x
:6
?
y:6。
(y=6,y+1,x=y,x+1)这个只有两个赋值才会改变x,y的值。所以y
:6
?
x
=
y:6。
逗号运算符可以看着连接作用,相加并不会改变,只有赋值了才会!还有++
--?
13和8,逗号运算是以逗号为界,先就算第一个表达式,再就算第二个,依此类推,最后一个表达式的值就是整个运算的结果
12,7
称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为
表达式1,表达式2
逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。
(x=6,x+1,y=6,x+y)
先是给x赋值6,然后做x+1运算(x没有变化),再做y赋值6,最后做x+y,结果是12,因为x,y都为6
(y=6,y+1,x=y,x+1)先是给y赋值。y+1运算,同样的y还是6,再把y赋值给x,x为6,最后做x+1运算,结果为7
逗号表达式的计算
如楼上所述,逗号表达式先计算内括号,再计算外括号,先计算逗号前,再计算逗号后
((x=4*5,x*5),x+25)
第1步算x=4*5,此时X得到赋值,X = 20
第2步算x*5,值为100
则内括号整个的值100,X = 20 【注意,算x*5时,并未给X重新赋值】
第3步算X + 25,值为20 + 25 = 45 【并未给X重新赋值】
此时逗号表达式就相当于(100,45),显然整个表达式值 = 45
c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两式联接起来,如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14。(a=3*5,a*4)的值是60 逗号表达式的形式如下: 表达式1,表达式2,表达式3,...... ,表达式n 逗号表达式的要领: (1) 逗号表达式的运算过程为:从左往右逐个计算表达式。 (2) 逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。 (3) 逗号运算符的优先级别在所有运算符中最低。
((x=4*5,x*5),x+25) = ((x=20,x*5),x+25) =(100,x+25)=125
答案应该为C
c语言逗号表达式是由左向右进行的:k=3*2=6,K+2=8,表达式返回8。
逗号表达式用法:
当顺序点用,结合顺序是从左至右,用来顺序求值,完毕之后整个表达式的值是最后一个表达式的值。
示例:
main()
{int a,s,d;
s=2;
d=3;
a=12+(s+2,d+4);
}
扩展资料
注意事项
(1) 逗号表达式的运算过程为:从左往右逐个计算表达式。
(2) 逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。
(3) 逗号运算符的优先级别在所有运算符中最低。
逗号表达式怎么用
表达式1,表达式2,表达式3,...... ,表达式n
逗号表达式的要领:
1.逗号表达式的运算过程为:从左往右逐个计算表达式。
2.逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。
3.逗号运算符的优先级别在所有运算符中最低。
在代码中,%d作为格式声明部分已经控制了输出值只能为十进制数,因此其输出值是实际值向下取整的结果。由取值x=10与y=3,z的值应当为10/3,也就是3.33333333······。但由于添加了流控制,输出结果只能为3。
除了整数限制以外,代码中的\n是普通字符中的换行符,表示输出后控制移到下一行的开头。
扩展资料
c语言的优点有以下:
1.简洁紧凑、灵活方便。
C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2.运算符丰富。
C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3.数据类型丰富。
C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。
4.表达方式灵活实用。
C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。它语法限制不太严格,程序设计自由度大,如对整型量与字符型数据及逻辑型数据可以通用等。
5.允许直接访问物理地址,对硬件进行操作。
由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。
6.生成目标代码质量高,程序执行效率高。
C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编程序生成的目标代码效率低10%~20%。
7.可移植性好。
C语言在不同机器上的C编译程序,86%的代码是公共的,所以C语言的编译程序便于移植。在一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行。
8.表达力强。
C语言有丰富的数据结构和运算符。包含了各种数据结构,如整型、数组类型、指针类型和联合类型等,用来实现各种数据结构的运算。C语言的运算符有34种,范围很宽,灵活使用各种运算符可以实现难度极大的运算。
参考资料来源:百度百科--逗号表达式
参考资料来源:百度百科--c语言
在C语言中逗号运算符有什么用呢?
补充下楼上的:
逗号运算符还可以返回最后个表达式的值
例如:
b=(d=d+1,e=e+1)
上面的代码相当于
d=d+1;
e=e+1;
b=e;
等下。。答错了。。还需要理解一下神马是逗号表达式。。我前面说的和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
如有疑问,欢迎您的追问。
</a<<endl;
</x<<endl;
</a<<endl;
</x<<endl;
</x;
</x<<endl;