關於C語言指標變數ppp的區,關於C語言指標變數 p p p 的區別

時間 2021-08-11 17:10:44

1樓:森祿欽春桃

首先搞明白一點,printf語句中表示式的執行順序是從右向左的,並且對於*(q++),首先進行解引用操作,再自增,即*q,

q=q+1;所以說第一個printf的輸出為22對於第二個printf,首先執行(*q)++,再執行*p++,對於(*q)++可以轉化為先執行(*q),即輸出它的值,再執行(*q)=(*q)+1,最後輸出*p,所以結果為32

2樓:屈鸞禹迪

1.printf中表示式的計算是右結合的,即從右向左運算;但輸出還是從左向右

2.第一個printf,先取q所是單元的值顯示,即為2,再對q++,即q所指單元地址後移一個單元,這裡無意義;然後再對p指單元后自增,先輸出2。“*”運算子的優先順序高於“++”運算子。

3.第二個printf,都是對p和q所指單元的值進行操作,(*q)++先輸出a的值2,再將其值加1變為3;再將p所指單元的內容a的值輸出3

3樓:老薇瞿楠

*p++就等於*(p++)

p自加先算出當前地址的值*p

然後指向下個地址

(*p)++是取出地址裡的值

這個值自加

p還是指向原來的地址

4樓:姓姣歐陽成

c語言的指標,裡面存放的是

實體地址。

而*p是

取內容的意思,即

取當前存放內容對應(指向)的地址

裡面的內容。

而p++

就是把p裡面的內容+1個單位,因為

p存的是地址,所以是

地址+1,也就是下一個地址。那麼指標p

就指向了

下一個地址了。

5樓:廉羽智碧玉

*p++

由於++和*同優級,是自右向左的結合方向*(p++),因此等價於*(p++);他們的作用是得到p指向的變數值(*p),然後p

+1=》p

(*q)++,是先取p指向的變數值,然後其值再加一;

c語言指標變數問題

金色潛鳥 c 語言中,形式邏輯不成立,指標書寫的外形,在宣告中和在語句中,外貌相同,意思不同!int ptr 這是宣告,宣告 ptr 是指標,用於指向 int 型變數。語句中 ptr 表示 指標指向的數值,ptr 表示 指標指向的地址。有 的是值,沒星號的是地址。ptr int malloc num...

關於C語言指標的指標的疑問,關於C語言的指標問題 指標的地址 1問題

month是指標陣列,每個元素都是一個char型指標,指向一個字串的首地址 p是二級指標,p month,p指向month陣列的首地址,也就是 january 的首地址的地址,p的值就是 january 的首地址,用 s 的格式輸出,就是字串 january 然後p month i,month是陣列...

關於C語言指標問題,C語言指標的賦值問題

飛翔的蠍子大叔 關於int p1 123這個問題我看了很多資料,在這裡我發表一點看法,該問題非常好,這是c語言需要規範的地方。int p1 123 是非法操作,指標表示地址,地址 123?我是沒有見過這種操作。地址一般用二進位制 八進位制 十六進位制表示,123表示地址根本就是扯淡!這個語句的目的就...