亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

逗號運算符是做什么的?

逗號運算符是做什么的?

米脂 2019-05-25 16:01:43
逗號運算符是做什么的?什么是,經營者用C呢?
查看完整描述

4 回答

?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

表達方式:

(expression1,  expression2)

首先計算expression1,然后計算expression2,并為整個表達式返回expression2的值。


查看完整回答
反對 回復 2019-05-25
?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

逗號操作將評估左操作數,丟棄的結果,然后計算右邊的操作數,這將是這個結果。鏈接中提到的慣用法是在初始化for循環中使用的變量時,它給出了以下示例:

void rev(char *s, size_t len){
  char *first;
  for ( first = s, s += len - 1; s >= first; --s)
      /*^^^^^^^^^^^^^^^^^^^^^^^*/ 
      putchar(*s);}

否則,不會有太多偉大的用途逗號操作符,雖然它很容易被濫用來生成代碼是難以閱讀和維護。

草案C99標準來看,語法如下:

expression:
  assignment-expression
  expression , assignment-expression

第2段說:

逗號運算符左操作數被計算為void表達式; 評估后有一個序列點。然后評估右操作數; 結果有它的類型和價值。 97)如果嘗試修改逗號運算符的結果或在下一個序列點之后訪問它,則行為未定義。

腳注97說:

逗號運算符不會產生左值。

這意味著您無法分配逗號運算符的結果。

重要的是要注意逗號運算符具有最低優先級,因此有些情況下使用()可以產生很大的不同,例如:

#include <stdio.h>int main(){
    int x, y ;

    x = 1, 2 ;
    y = (3,4) ;

    printf( "%d %d\n", x, y ) ;}

將有以下輸出:

1 4


查看完整回答
反對 回復 2019-05-25
  • 4 回答
  • 0 關注
  • 1147 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號