order-of-evaluation

    1熱度

    3回答

    的鏈結評價的操作,並且爲了考慮一個class MyClass用: 一個成員函數myClass& myFunction1(int)修改該 對象,並返回*this 一個成員函數int myFunction2() const一點不 修改對象 C++ 11/14標準是否保證: myclass.myFunction1(myclass.myFunction2()).myFunction1(myclass.my

    1熱度

    2回答

    我知道C中的計算順序並不嚴格,因此表達式--a + ++a的值未定義,因爲不知道聲明的哪部分首先運行。 但是,如果我知道計算順序在特定情況下無關緊要怎麼辦?例如: 所有修改對應於不同的變量(如在a[p1++] = b[p2++]) 訂單並不重要,像a++ + ++a - 結果是兩個無論哪個的+側首先計算。是否可以保證在運行另一個零件之前完全計算一個零件?即編譯器無法記憶a++的結果,++a的結果,

    2熱度

    5回答

    表達式如何在此方法內求值。 e.g System.out.println("Result"+2+3+4)產生Result234 但System.out.println("Result"+2+3*5)回報Result215 我明白了由左到右,如果一個操作數是字符串,那麼結果將是字符串,表達式的結果。對於上面的第二個例子,這是有道理的。但是例如上面的結果不應該是Result27? 更多示例會有所幫助。

    1熱度

    3回答

    我正在閱讀C++ Primer,第5版來學習C++,但是我遇到了一個我堅持的問題。問題如下: 由於運算符優先級,下列表達式無法計算。 你會如何解決它? string s = "word"; string p1 = s + s[s.size() - 1] == 's' ? "" : "s"; 我嘗試了各種解決方案,但我似乎無法得到它。我的邏輯是平等運算符需要兩個表達式,所以我需要創建,但我的解

    1熱度

    3回答

    The C++11 standard(5.17,expr.ass)的評估指出, 在所有情況下,分配的值計算的右側和左側的操作數 後測序,並將值計算之前 的賦值表達式。對於一個 不定排序函數調用,複合 分配的操作是單一評價 這是否意味着,該表達式: int a = 1, b = 10; int c = (a+=1) + (b+=1); if (c == 10+1+1+1) { pri

    10熱度

    3回答

    The C++11 standard(5.17,expr.ass)指出 在所有情況下,分配的值的計算之後測序的右側 和左邊的操作數,並在 的值計算之前賦值表達式。相對於一個 不定排序函數調用,化合物 分配的操作是單個評估 據我所知,這是給定的分配的一部分的所有表達式將被分配本身之前評估。即使我在同一個賦值中兩次修改相同的變量,這個規則也應該可以工作,而我相當肯定的是之前沒有定義行爲。 會給出代碼:

    1熱度

    2回答

    的訂單爲什麼說: 函數定義可以使用後 定義的定義,而變量定義不能。 例如, 一)下面代碼片段是錯誤的: ; Must define function `f` before variable `a`. #lang racket (define a (f)) (define (f) 10) b)中雖然以下片斷是正確的: ; Function `g` could be defined afte

    1熱度

    5回答

    我明白,關於函數參數的調用順序沒有保證,但是,如果函數調用作爲參數,則不能保證該函數將被調用第一? 我幫助學生介紹編程入門學科的實驗室,他們應該創建一個遞歸階乘函數,它接收n(對於n!)和一個指向將用於計數函數調用的整數的指針然後他們應該打印結果(n,n!和count)。 許多人抱怨說他們使用指針是錯誤的,所以我看了一下代碼,他們全都是這樣的: int fat(int n,int *count)

    4熱度

    4回答

    def foo true && return false end def bar true and return false end foofoo方法導致語法錯誤。 bar沒有。爲什麼? 假設我想用返回語句(類似於某個常用的shell/bash表達式)評估單行程,這是推薦的方式嗎?還是有更好的方法?

    2熱度

    1回答

    據我所知,C++總是從左至右評估在條件語句 if(A, B, C) A將首先評估,B秒,等等。但是,下面的例子表現出一些奇怪的行爲。 #include <iostream> #include <map> #include <memory> #include <vector> #include <boost/logic/tribool.hpp> //-///////////////