C语言中的逗号运算符,c语言中逗号运算符是怎么定义的

1,c语言中逗号运算符是怎么定义的多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值
2,C语言逗号运算加上括号就清楚了 (c=(a+=(a+2))),(a=b,b+3)a+2为3a+=(a+2):a为4.c=(a+=(a+2)):c为4a=b,b+3,a为2你的问题似乎写错了个地方,应该是a=(b , c--,d+3)吧,这个是《逗号运算符和表达式》那一节的 , “逗号运算符按照从左到右依次运算,整个逗号表达式的值是最右边那个表达式的值” 。括号里面就是一个逗号表达式,a取逗号表达式的值 。所以答案是a=8.很专业的哦 , 给采纳哈 。
3,C语言逗号运算符要看符号优先级的括号最高级,所以先算括号里的b++,算完后表达式的值为b的原值2,b自加1后b==3算完后又算a++,这时候表达式的值为a的原值1,a自加1后a==2所以最终表达式的值为a的原值1所以就x == 1 咯打印出来就是1 咯~ :)这……逗号运算符是从左到右计算,左边右边如果没有联系的话那运算值取得是最后一个逗号后的值;++在后面所以先赋值后+1 , 就是说先是X=1,然后a=a+1;逗号表达式在赋值中表示将右边的,右边的赋值给等号左边的变量,跟b没什么关系 。学C语言推荐谭浩强的新概念C语言,非常不错的书,希望能帮助到你 。...你的问题似乎写错了个地方,应该是a=(b,c--,d+3)吧,这个是《逗号运算符和表达式》那一节的,“逗号运算符按照从左到右依次运算,整个逗号表达式的值是最右边那个表达式的值” 。括号里面就是一个逗号表达式,a取逗号表达式的值 。所以答案是a=8.很专业的哦,给采纳哈 。【C语言中的逗号运算符,c语言中逗号运算符是怎么定义的】
4,c语言中逗号运算符的功能和使用方法逗号运算的功能和它的运算法则有关吧:(表达式1,表达式2 , 表达式3、、、、)括号里就是一个逗号表达式,它能将逗号前后的表达式都进行操作,不像||(或运算),被||连接的表达式,如果前面是真后面所有的表达式都不运行,但是“,”连结的表达式就会依次进行,直到该语句结束 。使用方法:具体情况吧,有时是语法的严格规定:如定义变量(int i,j;)我其他地方用过的时候是在求和时对变量初始化用的(for(i=1,sum=0;i<n;i++))c 语言中,逗号(,)也可以是运算符,称为逗号运算符(comma operator) 。逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式,称为逗号表达式 。其一般形式为:子表达式1, 子表达式2, ..., 子表达式n例如:a + b, c = b, c++逗号运算符的优先级是所有运算符中级别最低的,通常配合 for 循环使用 。逗号表达式最右边的子表达式的值即为逗号表达式的值 。上例中,c++ 的值(c 自增之前的值)即为该表达式的值 。逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算 。也就是说,逗号运算符是一个序列点,其左边所有副作用都结束后,才对其右边的子表达式进行运算 。因此,上例中,c 得到 b 的值后,才进行自增运算 。5,关于c语言中的逗号运算符逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式,称为逗号表达式 。逗号运算符的优先级是所有运算符中级别最低的,所以x=(200,500)先运算(200,500),200之后是500,所以x=500咯 。如果表达式是这样x=(3+4,4+7),x最后结果是4+7,即x=11 。可参考:http://see.xidian.edu.cn/cpp/html/27.html可以这样理解,逗号表示一种顺序 。对比下面两个表达式会更加清晰:x = x + 10, x * 3;x = (x + 10, x * 3);假设x初始值为10.对于第一个表达式,相当于:x = x +10;x = x * 3;此时x是(10 + 10) * 3 = 60.对于第二个表达式,(x + 10, x * 3)相当于:x + 10x * 3所以其返回值为x * 3,即 10 * 3 = 30 , 所以此时x是30.在C种 逗号可以当作运算表达式来计算举例 x=(x=1,x=x+1,x+2) 它是从左自右计算的,等同于先将X赋值为1,然后计算X+1=1+1=2,最后 2+2=4,返回的是4而你看的这本书估计根本就没怎么详细讲当X=(200,500,600) 时 ,X先为200,随后又为500,最后又为600,因为没有赋值操作,所以200和500就被覆盖了等下 。。答错了 。。还需要理解一下神马是逗号表达式 。。我前面说的和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=25x=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=21a=25a=(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=21a=525简单来说,逗号的作用就是执行每一个表达式,然后用最后一个表达式作为他它的值 。看这个可能可以帮助你理解 http://blog.csdn.net/great_ghoul/article/details/1779768如有疑问,欢迎您的追问 。逗号运算符( , )是c语言运算符中优先级最低的一种运算符,结合顺序是从左至右,用来顺序求值(最后一个逗号后面表达式的值作为整个表达式的值) 。下面举例说明逗号运算符的使用方法:int a=3, b=5, c;c = a>b, a+b; // 运行后c值为0,因为逗号运算符的优先级低于赋值运算符,所以先将a>b的结果(为0)赋值给c,之后运算a+b(结果不保存),所以c=0c = (a>b, a+b); // 运行后c值为8,因为括号的优先级高于赋值运算符,所以先算括号内的表达式,此时计算结果为最后一个表达式的值,即a+b的值,所以c=8逗号运算符( , )是C语言运算符中优先级最低的一种运算符,结合顺序是从左至右,用来顺序求值(最后一个逗号后面表达式的值作为整个表达式的值) 。下面举例说明逗号运算符的使用方法:int a=3, b=5, c;c = a>b, a+b;// 运行后c值为0,因为逗号运算符的优先级低于赋值运算符,所以先将a>b的结果(为0)赋值给c,之后运算a+b(结果不保存),所以c=0c = (a>b, a+b); // 运行后c值为8,因为括号的优先级高于赋值运算符 , 所以先算括号内的表达式,此时计算结果为最后一个表达式的值,即a+b的值,所以c=8

    推荐阅读