在C語言中ppp,在C語言中, p p p p 有什麼區別

2022-09-23 03:40:03 字數 682 閱讀 7774

1樓:東方全婁釵

我看書中解釋:*p++:是先取出*p的值,再使p加1//p是個指標,給p加1,相當於讓p指向了x所在位址的下乙個位置,而對於x則是沒有任何影響

(*p)++:是使*p的值加1.

//*p則是p指向的位置對應的值,題目中是*q,所以此時的*q就是x的值,為3,當輸出*q之後,再給*q即x自加1,所以x就變為4

2樓:麟棲居士

付費內容限時免費檢視

回答*++p指指標p代表的位址先自加1(移動到下乙個單元)然後再獲取p指向的位址的資料值,如int a[10];p=a;則*++p就是a[1]的值.++*p就為a[0]+1希望我的回答對你有幫助!

區別:1、*p++與*(p++)是等價的,表示取p所指單元的值,p指向下一單元,即p自加1。2、*p++是指下乙個位址。

3、(*p)++是指將*p所指的資料的值加一。c編譯器認為*和++是同優先順序操作符,且都是從右至左結合的,所以*p++中的++只作用在p上,和*(p++)意思一樣;在(*p)++中,由於()的優先順序比*和++都高,所以++作用在()內的表示式*p上。比如有:

int x,y,a=,*p=a,*q=a;x=*p++;//執行這一句後x=a[0]=1,p=a+1y=(*q)++;//執行這一句後,y=a[0]+1=2,q仍然=a

補充回答如上

更多1條

在c語言中若有定義,在c語言中,若有定義inta1,b2,c3,d4,x5,y6,則表示式xa

inta 1,b 2,c 3,d 4,x 5,y 6 則表示式 x a b y c d a b 不成立 則為假為0,x 0.符號要求倆個都為真才輸出真,所以表示式為假等於0 在c語言中,若有定義 int y 3,x 7 1,2,3,4,5,6,7 則表示式y x 5 的值 為 求解釋。定義乙個整形陣...

在c語言中,在C語言中ch c A a 是什麼意思,其中ch和c是字元

在c語言中ch c a a 的意思是,是把表示大寫字母的變數c轉換為小寫字母的語句,使用前一般要先判斷一下的,如下 if c a c z ch c a a 因為當c b 時,c a 就等於1,然後1 a 就是 b 如果事先不檢測的話,當c不是大寫字母時作這樣的轉換是會無法理解的。在c語言中ch c ...

c語言中752,為什麼,在C語言中type怎麼使用

表示為取餘,5 10的值為0。中除數與被除數都須為整數。3 2為 1,3 2為1。取餘後的結果與被除數的符號一致。x 5 x 5 5 x 5 5 2 5 3 5 3 在c語言中type怎麼使用 typedef常用抄來自定義型別,比如 typedef int a 那麼你就可以使用a去定義int形的變數...