c語言問題pi與pi有什麼區別啊

2021-03-04 01:14:19 字數 1161 閱讀 1040

1樓:匿名使用者

寫個c程式解釋吧。

#include

int main()

, *p = a;

printf("%d %d\n", *p + 1, *(p + 3));

return 0;

}輸出為 10 6;

為什麼呢?因為 *p = a 把 a 陣列的首地址的值放在 p 處,所以p = a,*p =a[0]= 9 => *p + 1 = 9 + 1 = 10.

p + 3 就是a陣列的首地址往後移動3位,即p = a[0], p + 3 = a[3]的值,就是6了。

2樓:匿名使用者

其實在定義時你這樣理解就很清楚答案了:

char *p;理解成char (*p);*p在一起是一個char。那麼,*p+i就是*p的值加上i,而*(p+i)是在先p+i再*操作,*是什麼意思呢,在這裡是「取值」。所以,*(p+i)是把指標移動i個位置,再返回前地址的值。

3樓:匿名使用者

地址加i,地址變了。地址

c語言中,指標*p[i]與p[i]有什麼卻別?分別代表什麼意思?

4樓:匿名使用者

若果我還沒記錯的話:

你的問題:你這裡問的是指標

p[i]:陣列p的[i]這個地方放的值

*p[i]:陣列p的[i]這個地方放的值(這當做一個地址)的值,即p[i]這個地方放了一個地址(相當於另外一個p[i]),然後用*讀取他所代表的值。----即我所說的:

陣列p的[i]這個地方放的值(當做一個地址)的值

5樓:某李某

*p[i]指的是裡面的值。

p[i]子的是地址,也就是裡面的值所在的地址。

c語言中*p+i和*(p+i)有什麼不同

6樓:匿名使用者

*p+i : *的優先順序高於+,所以先計算*p,即取用指標p指向的記憶體中的資料,然後將該資料和i相加

*(p+i): 先計算括號中的p+i ,即將指標p向後移動i個位置,然後做*運算取用其中的資料

7樓:calm朋朋

第一個p的值加i

第二個表示(p+i)地址的值

c語言與易語言什麼區別,C語言與易語言什麼區別

簡單說 易語言是中文 好學 c是英文 不會英語的人很難學 希望採納!什麼是易語言?它和vb c語言 c 等有什麼區別和相同點?答 易語言是中國人自己開發的一種程式語言,是一款全中文程式 的程式語言,和vb c語言 c c 等都屬於同一性質,都是用來開發程式和編寫軟體用的。易語言的核心由c 編寫而成,...

c語言的a和a有什麼區別,C語言中a與a的區別是什麼詳細一點,謝謝

如果要列印的值 來是a 如printf d a 那打源印出來的只是a的值bai.但是第二次打du 印的a值就 zhi是 後的值.就是先打dao印後 a就是先改變a的值,再列印出來.具體差別你可以自己試著執行比較一下.c語言中a 與 a的區別是什麼?詳細一點,謝謝 a 是先返回a的值,再執行 運算。a...

C語言中(sss 之間有什麼區別

s 解引後得到s指向位置的值,將該值作為表示式的結果,然後s指標往後偏移s 即s指標往後偏移 s 1 編譯器解析到 判斷為指標運算子號,需要一個標示符或者表示式 3 繼續解析到 由於 與 是同一優先順序,結合性為右到左,所以等同於 s 4 然後是 判斷為賦值運算子,優先順序比 低,因此前面的部分可以...