一:指標變數的運算
++*p
、
(*p)++
、
*p++
、
*++p
四者之間的差別
:
首先說一下:運算的優先順序:
++
和
*
同優先順序,結合方向為自右向左
(1)++*p,則相當於++(*p),給p指向的變數+1,然後取該變數的值。
通俗一點就是:++在前,先自增(*p)指向的值,值由6變為7,然後取出。
圖展示如下:
(二)
(*p)++,則是先取p指向的變數值,然後該變數+1
即:++在後,先取出*p的值,然後再加1.所以取到的值仍未6
但下面再用時*p此值變為7
(三)*p++相當於*(p++),表示取p所指向變數的值,然後p+1;
截圖如下:
(四)
*++p相當於*(++p),先給p+1,然後取p所指向變數的值
和三比較類似,++在前,所以p的值先加1,然後取出p所指向的值,此時為7
C語言指標變數的運算
指標變數儲存的是位址,本質上是乙個整數,可以進行部分運算,例如加法 減法 比較等,請看下面的 複製 格式化複製 include intmain else return0 include int main else return 0 執行結果 a 0x28ff44,b 0x28ff30,c 0x28f...
指標的高階宣告 指標變數的運算
int f 宣告乙個整數 int f 宣告乙個指向整型的指標 int f,g 這個並不是兩個整形指標,而是乙個指標,乙個整型 int f 乙個返回值為整型的函式 int f 本質是乙個函式,函式的返回值為指向整型的指標 int f 本質是乙個指標,指標指向乙個返回值為整型的函式 int f 本質是乙...
C語言 指標變數運算操作
指標變數除了的8種基本操作,還可以使用關係運算子來比較指標。1 賦值 注意,位址應該和指標型別相容。也就是說,不能把double型別的位址賦給指向int的指標,至少要避免不明智的型別轉換。c99 c11已經強制不允許這樣做。int a 6 int b 0 int p1 a int p2 賦值 p2 ...