c语言逗号表达式的运算规则是什么?

Python014

c语言逗号表达式的运算规则是什么?,第1张

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

如有疑问,欢迎您的追问。