c语言逗号表达式是由左向右进行的:k=3*2=6,K+2=8,表达式返回8。
当顺序点用,结合顺序是从左至右,用来顺序求值,完毕之后整个表达式的值是最后一个表达式的值。
逗号表达式的要领:
(1) 逗号表达式的运算过程为:从左往右逐个计算表达式。
(2) 逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。
(3) 逗号运算符的优先级别在所有运算符中最低。
举个例子:
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。
对于给a2赋值的代码,也是有三个表达式,这时的三个表达式为a2=++b、c--、d+3,(这是因为赋值运算符比逗号运算符优先级高)虽然最终表达式的值虽然也为8,但b=4(第2行代码运算完时,b=3,即第3行代码运行时,b的值为4),所以a2=4。
int main(){ int k = 0; int i = ((k=3*2, k+4), k+2); printf(;value = %d;n; i)}结果:value = 8逗号表达式从左往右计算。
但返回右边的数据值作为表达式值;1. k = 3*2 // k = 6;2. (6, k+4) // 表达式返回10, k仍为63. (10, k+2) // k为6,表达式返回8。
依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接操作,因此既能够用于开发系统程序,也可用于开发应用软件。通过对C语言进行研究分析。
扩展资料:
特有特点:
其一,广泛性。C 语言的运算范围的大小直接决定了其优劣性。C 语言中包含了34种运算符,因此运算范围要超出许多其它语言,此外其运算结果的表达形式也十分丰富。此外,C 语言包含了字符型、指针型等多种数据结构形式,因此,更为庞大的数据结构运算它也可以应付。
其二,简洁性。9 类控制语句和32个KEYWORDS是C语言所具有的基础特性,使得其在计算机应用程序编写中具有广泛的适用性,不仅可以适用广大编程人员的操作,提高其工作效率,同 时还能够支持高级编程,避免了语言切换的繁琐。
其三,结构完善。C语言是一种结构化语言,它可以通过组建模块单位的形式实现模块化的应用程序,在系统描述方面具有显著优势,同时这一特性也使得它能够适应多种不同的编程要求,且执行效率高。
参考资料来源:百度百科-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
如有疑问,欢迎您的追问。