請問這道C語言題為什麼不是4和1?

時間 2021-05-05 21:45:57

1樓:陳奕池

因為 ||和&&是短路運算子以a||b為例,就是說如果發現a是真的話,那這個式子將一定為真,計算機將不執行b的運算

而a&&b是當a是假的時候,會跳過後面的運算由於後面被跳過了,所以叫做短路

2樓:扶我起來我還能擼

這個解釋起來得用到編譯器的優化,通俗的說,編譯器就是把我們書寫的高階語言轉換為計算機可以看得懂的機器語言,編譯器也是乙個程式,他在翻譯我們寫的程式時候,會進行乙個優化,把沒有必要的步驟給省略掉,我們寫的不一定都有用啊,寫作文還有囉嗦的呢,別說程式了,這樣減少了計算機執行的步驟,從而提高效率,上面這個表示式,我只能說你表達意思,究竟是賦值和判斷邏輯同時進行還是簡單判斷邏輯?不管哪個,編譯器是認為是判斷邏輯,因為「或「運算子本身具有一真則真的原則,所以編譯器沒有必要進行後面的運算,所以不存在賦值,明白了嗎?「與」運算子也是這樣,一假便假,無須執行後面,為了提高效率嘛!

這應該懂了吧

3樓:Weyne Chen

標準文件上有寫,c99標準89頁。

the || operator guarantees left-to-right evaluation; there is a sequence point after the evaluation of the first operand. If the first operand compares unequal to 0, the second operand is not evaluated。

如果第乙個引數不為0,後面的操作不再執行。

a不為0,因此,後面的兩個賦值運算就不執行,x,y就依然為原值。

這個不是編譯器優化,開不開優化結果皆是如此。

請問此題,為什麼c選項是錯誤的?

二手星辰 機械能變化是判斷不出來的 機械能 Ep Ek 在不受除場力做功外的情況下,機械能守恆。該題,小車受力不明確,阻力與牽引力不明確所以機械能變化從受力角度判斷不出來。該題是乙個類勻速圓周運動問題。由運動性質可以知道合力指向圓心與速度方向 圓弧切線 垂直。故合力不做功。只改變速度方向。因此機械能...

C 語言不是跨平台嗎?為什麼有的 C 語言原始檔還要區分平台?

羅永錘 因為區分平台的部分大多數都是組合語言。而c要區分的話是因為作業系統本身有個功能就是管理硬體,當然要根據硬體的不同來區分目錄了。就像同樣是通訊硬體,雖然提供給上層的介面類似,但是乙太網和光纖的具體實現肯定要用不同的c程式。 開源醬 因為不同平台上有不同的實現和不同的擴充套件 ANSI C 之外...

請問這字有什麼問題?為什麼感覺不到進步?寫這麼久沒什麼提高。?

林某蠢 不請自來,前邊幾位前輩已經在大方向給了你很多建議。今天小生比較閒,我們一起交流一下你出現的問題和需要注意的地方。一 我們從字形上來講,你的字和你現在選取的字型比較起來,整體都是偏瘦,寬度不夠。寬度不夠通常由三個原因引起,其一是橫勢的筆畫表現不足,其二是縱向間隔距離過大,其三是橫向間隔距離不夠...