++跟*的優先級一樣,如果兩個同時出現,運算是從右往左(不是常規的從左往右),所以:
++*x即++(*x),先取x的值,然后讓值自加1;(地址沒變,指針指向的值變了。搞不懂的話自己用快遞做例子)
*++x即*(++x),先讓x的自加1,就是x的地址加上這個指針類型的步長(比如說這個指針是int類型,那它的地址+4,以此類推),然后再取x的值。(地址變了,但是值沒變)
另外的,int *x,x代表的是指針,指針即地址,*是取值符,*x就是取指針x里存的值
++跟*的優先級一樣,如果兩個同時出現,運算是從右往左(不是常規的從左往右),所以:
++*x即++(*x),先取x的值,然后讓值自加1;(地址沒變,指針指向的值變了。搞不懂的話自己用快遞做例子)
*++x即*(++x),先讓x的自加1,就是x的地址加上這個指針類型的步長(比如說這個指針是int類型,那它的地址+4,以此類推),然后再取x的值。(地址變了,但是值沒變)
另外的,int *x,x代表的是指針,指針即地址,*是取值符,*x就是取指針x里存的值
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。