為什么不是取出指標p的值后先自增再給y賦值,而是先賦值給y再自增,自增自減得優先級不是高于賦值嗎
uj5u.com熱心網友回復:
后置++是要執行完這行陳述句才執行的uj5u.com熱心網友回復:
* 指標p指向陣列a的第1個元素a[1]運算式:y = ( *--p )++;
1. 括號的優先級大于“++”。先運算括號內的運算式( *--p )
2. *與--的優先級相同,結合方向是由由到左,先運算“--”
3. --p 是前自減,所以先對指標p做移位操作,前移一個位置(int),那么指標p指向了陣列a的第0個元素a[0]
4. 然后做*的取內容操作,取得是a[0]的資料,為5
5. 下面看括號后的運算子++,這是后自增,就是先運算當前運算式,再自增,也就是先對y賦值(( *--p )賦值給y, 就是y = 5 ),再自增(( *--p )自增,就是a[0]自增,則a[0]為6)
uj5u.com熱心網友回復:
畫重點左結合性
uj5u.com熱心網友回復:
你去查一下優先級表哦,看一下運算子*、--、++的結合方向
uj5u.com熱心網友回復:
a = b++;是先執行 b++;
不過 回傳給a 的值是 b++ 之前的值。
uj5u.com熱心網友回復:
++是后置后置就是陳述句結束之后在進行自增
uj5u.com熱心網友回復:
前自增減的優先級高于賦值,后自增減有個條件是這一行陳述句執行完后才會執行。先--p得到p0地址,取值五,在(*p)++轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/77416.html
標籤:C語言
上一篇:opencv
下一篇:C語言冒泡排序問題請教
