一、自增自減前操作與後操作的區別
在c/c++中,自增(++)自減(--)操作符為資料物件加1和減1操作提供了一種方便簡潔的實現方式。他們都有前置和後置兩種形式。下面給出簡單的**實現:
#includeint main()
所以,從上面的**中可以看出:前自增自減操作優先順序大於賦值運算子(=),而後置自增自減操作的優先順序小於賦值運算子,後自增自減操作後表示式的值不會發生改變。小小筆試題:
//i++與++i之間的運算:
#includeint main()
上面的這段**你認為結果是多少呢?
沒有結果,因為不同的編譯器做出來的結果是不同的,我用vs2015和gcc出來的結果是不一樣的,如下圖所示:
vs下執行結果:
linux下面gcc的結果:
二、指標自增自減有何不同
下面給出一段**:
//指標的自增自減操作
#include#include#include#includeint main()
執行結果:
所以,變數的自增自減是修改變數的值。指標的自增自減是修改指標的指向位址。
三、什麼是左值和右值
左值可以出現在賦值語句的左邊或右邊,也就是說左值可以當右值使用。右值只能出現在賦值的右邊,不能出現在賦值語句的左邊。變數是左值,因此可以出現在賦值語句的左邊。數字字面值是右值,因此不能賦值。在實際上,左值是一塊記憶體儲存資料要操作的位址。而右值是乙個具體的數字或資料也就是該記憶體儲存的資料內容。
示例**如下:
int a = 1;//變數a是乙個左值
char str = "hello bit";//陣列成員str[i]是左值
"hello bit";//這個表示式是乙個資料內容,它是乙個右值
str("hello bit");//這也是乙個右值
注意:有些操作符,例如賦值,要求其中的乙個運算元必須是左值。結果,可以使用左值的上下文比右值更廣,左值出現的上下文決定左值是如何使用的。
所以,變數是左值,可以出現在賦值語句的左邊,數字字面是右值,不能被賦值。
自增 和自減 操作符
自增操作符和自減操作符經常要在我們自定義的類型別中使用到,而使用時經常會出現問題。現把自己在學習的過程中的 拿出來看一下,也是c primer中的例子如下 ifndef check ptr define check ptr include using namespace std class chec...
關於自增自減操作符
c c 中自增自減運算子相信是不少人的乙個困擾,這個問題也一直困擾著我,今天再次翻開書本來看了看,有了些新的體會,所以在這裡記錄下來,同時也與那些像我一樣被困擾的人分享,程式設計大牛可以繞道了,或者有什麼不對的地方請大牛們指正。以 為例,如下程式輸出結果是什麼 int a 0,j 1 a j cou...
自增和自減操作符
毫無疑問,自增 和自減 操作符為物件加1或減1操作提供了方便簡短的實現方式。程式設計中的宗旨 簡潔即美 它們有前置和後置兩種使用形式 int i 0,j j i j 1,i 1 prefix yields incremented value j i j 1,i 2 postfix yields un...