逗号运算符是做什么的?

逗号运算符是做什么的?

什么是,经营者用C呢?



米脂
浏览 1102回答 4
4回答

慕仙森

表达方式:(expression1,  expression2)首先计算expression1,然后计算expression2,并为整个表达式返回expression2的值。

哆啦的时光机

该逗号操作将评估左操作数,丢弃的结果,然后计算右边的操作数,这将是这个结果。链接中提到的惯用法是在初始化for循环中使用的变量时,它给出了以下示例:void&nbsp;rev(char&nbsp;*s,&nbsp;size_t&nbsp;len){ &nbsp;&nbsp;char&nbsp;*first; &nbsp;&nbsp;for&nbsp;(&nbsp;first&nbsp;=&nbsp;s,&nbsp;s&nbsp;+=&nbsp;len&nbsp;-&nbsp;1;&nbsp;s&nbsp;>=&nbsp;first;&nbsp;--s) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*^^^^^^^^^^^^^^^^^^^^^^^*/&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;putchar(*s);}否则,不会有太多伟大的用途逗号操作符,虽然它很容易被滥用来生成代码是难以阅读和维护。从草案C99标准来看,语法如下:expression: &nbsp;&nbsp;assignment-expression &nbsp;&nbsp;expression&nbsp;,&nbsp;assignment-expression和第2段说:逗号运算符的左操作数被计算为void表达式;&nbsp;评估后有一个序列点。然后评估右操作数;&nbsp;结果有它的类型和价值。&nbsp;97)如果尝试修改逗号运算符的结果或在下一个序列点之后访问它,则行为未定义。脚注97说:逗号运算符不会产生左值。这意味着您无法分配逗号运算符的结果。重要的是要注意逗号运算符具有最低优先级,因此有些情况下使用()可以产生很大的不同,例如:#include&nbsp;<stdio.h>int&nbsp;main(){ &nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;x,&nbsp;y&nbsp;; &nbsp;&nbsp;&nbsp;&nbsp;x&nbsp;=&nbsp;1,&nbsp;2&nbsp;; &nbsp;&nbsp;&nbsp;&nbsp;y&nbsp;=&nbsp;(3,4)&nbsp;; &nbsp;&nbsp;&nbsp;&nbsp;printf(&nbsp;"%d&nbsp;%d\n",&nbsp;x,&nbsp;y&nbsp;)&nbsp;;}将有以下输出:1&nbsp;4
打开App,查看更多内容
随时随地看视频慕课网APP