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 值得是該...