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表示地址根本就是扯淡!這個語句的目的就...