C語言 不要在函式呼叫的時候使用自加自減運算子

2021-10-14 12:08:21 字數 452 閱讀 6318

下面這段程式,列印出來的數字應該是什麼?

#include

"stdio.h"

int a=1;

intmain()

a和b分別是全域性變數和區域性變數,如論printf列印的時候是從左到右運算,還是從右到左運算,兩行結果都應該一致才對,但是真正的結果卻是下圖(codeblocks程式設計環境)

我們把++a和a++的位置換一下,改為下面的程式

#include

"stdio.h"

int a=1;

intmain()

所以,在函式呼叫的時候,不要使用自加自減運算子,因為你不知道會得到什麼樣的結果!

C 不要在建構函式和析構函式中呼叫虛函式

這裡先執行個示例 include using namespace std class base virtual void fun virtual void fun 0 base class derived public base virtual void fun virtual void fun d...

不要在建構函式中呼叫可重寫的方法

原因 非密封型別的構造函式呼叫其類中定義的虛方法。規則說明 呼叫虛方法時,直到執行時之前都不會選擇執行該方法的實際型別。構造函式呼叫虛方法時,可能尚未執行呼叫該方法的例項的建構函式。如何修復衝突 要修復與該規則的衝突,請不要從某型別的建構函式中呼叫該型別的虛方法。何時禁止顯示警告 不要禁止顯示此規則...

不要在建構函式和析構函式中呼叫虛函式

提到建構函式和析構函式,想必大家肯定是非常了解,但是能否在建構函式或是析構函式中呼叫虛函式呢?答案是千萬不要這麼做,這麼做不會得到大家想要的結果。首先提一下建構函式,建構函式的順序是從基類開始構造 子類,如果在基類中呼叫虛函式,由於建構函式基類中僅存在自身 或其父類,如果存在 不會根據虛函式表的規則...