p n與 p n有什麼區別,c語言 p 與 ( p) 有區別嗎?運算順序如何?

2021-07-08 21:31:15 字數 1669 閱讀 3350

1樓:匿名使用者

.操作符的優先順序在++(*p).n這個式子中的優先順序是最高的,所以會先計算(*p).n的值,也就是a[0].n,再計算字首++,所以最終結果是6

->操作符的優先順序高於字首++操作符的優先順序,所以在++p->n中會先計算p->n的值,同樣也是a[0].n,然後再計算字首++,所以最終結果也是6

因此,c和d都正確。

2樓:

++(*p) 表示把p的內容++ ;對於struct st,則沒有++運算,更不會有後面的++(*p).n了。

++p則表示把p指標後移到下一struct st結構體。

3樓:匿名使用者

(*p)==a

++(*p).n===++a[0].n

4樓:養海瑤

(*p)++,是先取指標p的值,然後對其值進行++運算,

*(p++),是先對指標p進行++運算,然後再取取值,

*p++,同*(p++),因為按優先順序來看,*和++是同級,他們都是從右到左的順序進行運算,所以先++,再*。

如果char q[5] = "am";

char *p = q;

那麼,(*p)++後,p就變成了"bm";因為是進行對其首元素進行加1運算

*(p++)後,p就變成了"m",因為是先指向下一個元素,再進行取值運算,

*p++同上面,

如果只是徵對這3個語句賦值給其他變數的話,3個的結果都是a,在這裡。

char o = (*p)++;

char m = *(p++);

char n = *p++;

都是a。

c語言中,p是指標變數。p->n++, ++(*p).n, ++p->n 有什麼區別????

5樓:

p->n++,訪問p所指結構體變數的n成員,然後將n加一;

++(*p).n,先將p所指結構體變數的n成員加一,然後再訪問n;

++p->n,先將p指標加一,即訪問下一個結構體變數的n成員。

c語言:++*p->與++(*p)-> 有區別嗎?運算順序如何? 10

6樓:匿名使用者

有區別前者的

bai運算順序是du

後者zhi的運算順序是

1、p-> 1、(*p)2、*(p->) 2、(*p)->3、++(*(p->)) 3、++(*(p->))

c++技術網,很dao

多免費c語言版的教程,對新手學習很有好處,權對程式設計師更有溫故而知新的感覺。

程式設計師是一條漫長的路,希望你能堅持下來

7樓:匿名使用者

如果是道題,那bai你就把du

涉及到的三個運算子zhi兩兩進行比較(可以dao查表,可以試驗),然後

回再看這兩個語答句的區別。

如果這只是你工程中遇到的問題,那還是別瞎費勁了,按照你的意思去加括號。我們程式設計的時候是反對把運算堆在一起的。這樣你理解費勁,其他人看你的**也費勁。

8樓:匿名使用者

++*p是把地址加一

++(*p)是把內容加一

c語言中與有什麼區別,c語言中 和 有什麼區別

只能註釋單行,而 可以註釋多 行。只能註釋本行後面的內容,而 註釋中間包內括的所有內容,可以跨行。是行注容釋,後面的又會被認為是註釋,而 是塊註釋,在 中的內容都是註釋。塊註釋舉例如下 abcdefkgalsdjfajsdlfkjasl jldsjg lajdfl fasdgklasdjgl fad...

C語言 p a,與p a有什麼區別

指標操作符的優先順序非常高,於是 p a就是 p a 取得指標p指向的結構體的成員a 也是指標 指向的第一個元素。p a是取得p指向結構體的成員a,等價於 p a p a 是指 求指標變數p所指的物件的成員a p a 是指 求 指標變數p所指的指標成員a 所指向的空間的值 前者還是一個指標,後者是一...

C的指標變數中,p與p有什麼區別

include void main 程式輸出屬結果 p 5 p 0x0012ff7c press any key to continue p指向的是地址,是解除操作符,加在p前面是為了獲取儲存在這個地址的值 int p 10 p 為一個整形變數 int pn p pn為一個指向p的指標.p 值得是該...