指標及自增自減混合運算

2021-08-29 02:03:02 字數 624 閱讀 6508

在c++中,字首++或- -運算優先順序要比字尾的低,且在《c++運算子的優先順序和結合性》表中與指標運算子*屬於同組,即優先順序和結合性相同。

​ int a[5]=;

​ int *p=a;

1. *p++

根據結合性優先順序法則,字尾++優先順序高於*指標運算子,因此該表示式等價於*p(++),字尾++先使用值,然後將值自增1,則表示式可解釋為int *pt,pt=p,p++,*pt; 於是

​ cout<<*p++; //輸出結果為1

2. (*p)++

​ 先對p解除引用,然後將指標p本身自增1,增量單位與p本身指代的內容型別一致,則

​ cout<<(*p)++ ; //輸出結果為1

3. *++p

​ 字首++和*優先順序相同,p只能和++運算子結合,於是該表示式等價為*(++p),先將p自增1,再解除引用,則

​ cout<<*++p; //輸出結果為2

4. ++*p

​ 先解除引用,後對*p的值自增1,於是

​ cout<<++*p; //輸出結果為2==>++a[2]==>++1

自增與自減運算

自增與自減運算 自增與自減主要有以下兩種作用 1 無論是前置 後置,都是自身變數加1,都是變數減1 2 當作為表示式時,前置和後置就有區別了。前置運算子的結果是加1或減1之後的結果,前置運算子的結果是加1或減1之前的結果。下面通過乙個簡單的程式進行說明 include using namespace...

自增自減運算子

自增自減運算子 i 先使用i,然後i i 1 i 先使用i,然後i i 1 i 先i i 1然後使用i i 先i i 1 然後使用i 以下使用vc下除錯的結果,不同的編譯器可能有不同的結果。i 3 例1printf d i 結果輸出4 例2printf d i 結果輸出3 例3printf resu...

自增 ,自減 運算子

自增1運算子記為 其功能是使變數的值自增1。自減1運算子記為 其功能是使變數值自減1。自增1,自減1運算子均為單目運算,都具有右結合性。可有以下幾種形式 i i自增1後再參與其它運算。i i自減1後再參與其它運算。i i參與運算後,i的值再自增1。i i參與運算後,i的值再自減1。在理解和使用上容易...