c語言p2i是什麼意思,C語言問題。pi與pi有什麼區別啊

2021-05-21 06:30:13 字數 3229 閱讀 6328

1樓:匿名使用者

在指標p的地址上 加 (變數i乘以2)。

然後這個地址指向的內容就是結果了。

2樓:聽不清啊

比*p所指的單元后移2i個單元中所儲存的值。

c語言問題。 *p+i與*(p+i)有什麼區別啊?

3樓:匿名使用者

寫個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了。

4樓:匿名使用者

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

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

5樓:匿名使用者

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

c語言%c是什麼意思

6樓:聽不清啊

是%c,不是%c

%c是輸出一個字元。

7樓:

執行m=i++;等價於m=i; i++;所以m=6 i=7;

執行n=--j;等價於--j;n=j;所以n=j='5';

c語言中p*=i是什麼意思?

8樓:匿名使用者

*=是c語言的特殊操du

作符號,調zhi用形式

dao為

a*=b;

其等效於

a=a*b;

但是用*=的形式,可內以容減少**輸入,同時還可以提高執行效率。

p*=i也就是p=p*i, 即將原始的p值與i值相乘, 結果賦值給p。

c語言中類似的符號還有+=, -=, /=, %=, ^=, |=, &=等等。

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

9樓:大野瘦子

一、意思不同

bai*(p+2) 表示先將地址後移兩位,du再取地址內zhi容。dao*p+2 表示先取當前地址內容,然後對內回容加2。一個是對地答址的操作,一個是對內容的操作,完全不同。

二、用法不同

例如:有陣列a:

1 2 3 4 5

*p=&a;

那麼:*(p+2)=3,*p+2=3

*p就等於1.*(p+x)就是將指標移x的位置。

三、用途不同

1、*p[ ]

在main函式的引數中有使用到,其中的 char *argv的argv就是一個指標陣列,用來儲存函式呼叫時傳進來可變個數的引數

int main(int argc, char *argv)2、 (*p)[ ]可以作為二維陣列的引用

10樓:匿名使用者

p是一個來

指標變數,p本身表示一源個儲存地址,而*p表示bai取這個地址單元du中的內容。

所以,就可以zhi這樣理解dao:

*(p+2) 表示先將地址後移兩位,再取地址內容。

*p+2 表示先取當前地址內容,然後對內容加2。

一個是對地址的操作,一個是對內容的操作,完全不同。

11樓:stm偉

(*p)[2]是陣列指標,復p是一個

制指標,指向一個陣列的指標;

*p[2]是指標陣列,p是一個陣列,裝載指標的陣列。

先看『*』符號、'()'符號和『』的優先順序,在c語言中,'()'和『』符號是相等的等級,'*'的等級比他們兩個低;而'()'和''的結合方向是自左向右的,就是說先計算'()'內的。

如此,我們先講(*p)[2],按照結合方向,先結合『()』內的*p,說明p是一個指標,在結合『』符號,說明該指標指向的是一個陣列,所以(*p)[2]是陣列指標;

*p[2]中,『』的優先順序比『*』大,所以先結合p[2],p是一個陣列,再結合'*',說明p陣列裡面裝載的是指標,所以*p[2]是指標陣列。

12樓:枯藤老樹昏鴉

1.(*p)[2] 是指向一維陣列(含兩個元素)的指標變數

舉個例子:

如果是int(*p)[2],表專示*p有兩個元素,它的每屬個元素為整形,也就是p所指向的物件是有兩個整形元素的陣列,即p是指向一維陣列的指標

2. *p[2]是指標陣列,實質是一個陣列,裡面的兩個元素都是指標的優先順序比*的優先順序高,p先與結合,形成陣列p[2],有兩個元素的陣列,再與*結合,表示此陣列是指標型別的,每個陣列元素相當於一個指標變數

13樓:匿名使用者

*(p+2)是取p指向的地址的後兩個單位的地址的值;

*p+2是取p指向的地址的值,再對這個值加2

14樓:匿名使用者

詳細給你說下bai,比如你定義一個指du向整數指標int *p;int a=2;p=&a;其實這裡zhi的*p不叫指dao針,真正的指標是p,指標只是專個地址而已屬,定義的時候加個星號表示你定義的是個指標而不是別的.但使用的時候加星號就表示解引用操作也就是對指標指向的內容的操作,第一個加了括號裡面優先順序大所以先算括號裡,括號裡是p+2,根據我剛才說的p是個指標所以加2表示指標向後移動兩位,所以算完仍然是指標,再加上括號外面的解引用就表示了它所指向的值,而第二個先算*p表示p所指向的值2所以再加2就成了4.

15樓:匿名使用者

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

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

16樓:襲明也

舉個例子吧!

有陣列a:

1 2 3 4 5

*p=&a;

那麼:*(p+2)=3,*p+2=3.

*p就等於1.*(p+x)就是將指標移x的位置.

c語言1《i什麼意思,c語言中i1是什麼意思來著。。。突然間忘了

12指愛人,親人,戀人都可以為 12畫 同時12也指月滿,象徵著家庭團團圓圓,生活愛情幸福美滿 c語言中1 表示將1的二進位制每位想左移動i位,末位補0。左移運算子 是c語言中的一回種常見的運算子,一答般用法可以通過下面的例子講解來說明 如 1 5 由於1的二進位制為0000 0001,左移5位就是...

c語言中include什麼意思,C語言中 include什麼意思

樓下說錯了,所有的非標準標頭檔案均必須使用 比如 include會報錯 無法找到該檔案。include就是包含標頭檔案 最基礎的stdio.h是標準的輸入輸出檔案,printf和scanf函式等在這當中。同樣的,自己也可以寫標頭檔案。可以直接指定標頭檔案目錄 在c語言中,include 被稱為檔案包...

c語言中是什麼意思c語言中x是什麼意思

在c語言中,x代表的意思是按位取反的意思。將x按位取反 比如x 10101010b。那麼 x 01010101b。還要注意,在c語言中,還有邏輯取反符號 x 的返回值只有0和1兩種。如果x為0,則!x 1。如果x不等於0.則!x的返回值為0。擴充套件資料 c語言關鍵字。signed 宣告有符號型別變...