在實際C C 開發中是否應該禁用 符號以減少歧義?

時間 2021-05-31 00:35:45

1樓:Doraemon

你好:C 語言裡對這種自增自減運算子都做了明確規定,這句話本身沒有歧義。

【if (a++ > value)】等價於下面這一段話:

if (a > value)

// if

a += 1;

只是一種適合與否的問題。如果寫得不規範就要禁用的話,那需要禁用的場合就太多了。

還有,實際上現在有那麼一種語言,對這類語法的要求比較嚴格,它的名字叫 Python。

2樓:冒泡

很多答案說的先比較再自增其實還不夠嚴謹,這個式子應該是這樣算:

1 先計算++表示式,得到的是a的自增前的老值2 用1中得到的值與value比較

至於a啥時候自增了,只要在下乙個seq point之前就行,具體是未定義的

3樓:

只在肯定沒有歧義的時候用,比如for迴圈,單個表示式i++ ......

比如同時存在算符優先順序和++--,表示式取值順序沒有固定,還要用,出錯的概率非常大。

4樓:

只要同乙個變數不要在同乙個語句中使用兩個以上的這種運算讀起來都沒啥歧義吧。

不過這種乙個語句裡面這種運算多了,確實降低可讀性,大多情況下只會寫乙個,偶爾兩個,三個及以上不太可能了

5樓:

題主暴露了水平。

題主你一定把編譯器當瀏覽器,以為還有IE那種超神的存在。

a++>ex 是沒有→_→歧義的,你先搞清楚好嗎,你這樣會讓大家嘲諷你的,雖然你已經假裝不是個小白了,可是問題本身暴露了啊。

我相信在任何乙個包含++運算子的語言裡都會在介紹到這裡的時候告訴你運算子的優先順序和++寫在前面和後面的區別的。

最後,編譯器不會認錯。認錯的是你。

這種寫法只影響可讀性,不影響執行,請明確語言細節再來提問吧。

6樓:

這句話沒有歧義

我想有一定經驗的都知道那句話啥意思

那啥意思呢

a>value;a

=a+1

;兩句合併

那什麼時候有歧義呢i+=i+++++i;

i-=++i-i++;

或者inti=

5;printf

("%d %d %d\n"

,i++,

i++,i

++);

請問他輸出啥(`)

我第一次看到這些程式語句的時候我的感覺是

7樓:

a++>value表示a先跟value比較再自增++a>value表示a自增之後再執行比較沒有歧義,題主基礎不紮實

另外沒有自增你打算怎麼用iterator?

8樓:叛逆者

允許寫a++ > value的話,錯誤不再++,而在允許同一行有兩個操作的語句。所以應該禁用的是這個。一行只表達乙個操作,變成

a++;

a > value這樣。

9樓:

像a++ > value這種語句,事實上到底是先給a遞增再比較還是先用a原來的值去比較再遞增a,並沒有嚴格的規定跟「先增後比」還是「先比後增」沒關係,因為比較的是a++這個表示式的值和value的值,不是a的值和value值相比。

先增後比:

left = a

a = a+1

right = value

result = left > right ?

先比後增:

left = a

right = value

result = left > right ?

a = a+1

兩者的result有區別嗎?

10樓:任二

遞增運算子(++)和遞減運算子(--)為物件的加1和減1操作提供了一種簡潔的書寫形式。這兩個運算子還可以用於迭代器,因為很多迭代器本身不支援算術運算,所以此時遞增和遞減運算子除了書寫簡潔外還是必須的。——《C++ Primer5 中文版 P131》

各種足球的奇葩戰術在實際球賽中是否被允許使用?

醒醒,現在是9102年了,已經不是 京都球俠 的年代了。11個人在門前站一排是沒卵用的。確實有球隊在禁區內任意球時這麼排過。然而對於受過專業訓練的球員來說,打個死角不要太容易。 白若進 以我所知非常有限的足球規則,球員在場上使用的任何物品都被看做身體的一部分,包括衣服 鞋子 手套 礦泉水瓶,以至其他...

在大學中我們是否應該展現自己

一嘉陶藝 不論是在大學,還是到了社會上,都應該展示自己 大學某種程度上可以認為是對社會的一種模擬,社團的活動組織,人脈的建設,實驗室,交換生專案,琳琅滿目的比賽 從古至今,許多人才被埋沒,相當一部分是因為自己有才華而沒有展現出來,有能力而無處施展。千里馬和伯樂,哪個更重要?努力和機遇哪個更重要?正所...

axure在實際工作中是否會使用到全部功能

東嶽老師 以我工作十幾年的產品經理經驗來看,包括訓練的一千多學員就業情況,axure這款工具大部分公司要求的都不難。做產品經理不是學習的工具,是思維能力,工具基本會用就行了。在工作中有三種原型,低保真,中保真,高保真。低保真的話是線框圖模式,主要是快速的表達需求的,一般這類的線框圖很容易畫,掌握基本...