c 中對於陣列int a 9p a,a 1,aa,p 1,pp有什麼區別

2021-04-12 07:18:53 字數 3152 閱讀 9921

1樓:

a++和++a是錯誤的,編譯都不會過,因為陣列名是常指標。只剩下a+1和p+1了,它們在使用上是沒有區別,指向了同乙個地方,但a是常指標而p是普通指標!

2樓:匿名使用者

都不表示a[1]

a+1表示&a[1]

a++和++a都是非法p+1和a+1相同

p++和++p不一樣,前者值是p後者是p+1

c語言對於陣列a[1,3,5,7]*p+1和*(p+1)的區別

3樓:

假設p = a;

則*p = a[ 0 ] = 1

*p + 1 = a[ 0 ] + 1 = 2;

p + 1 = &a[ 1 ] //這裡的 p + 1 是指標p的指向往後挪了一位

因此 *(p + 1) = a[ 1 ] = 3

4樓:拜月

對於任意乙個陣列,

*p+1= *p指向的變數值 + 1

*(p + 1)= *p後移一次指向的新的變數值。

5樓:匿名使用者

a[1,2,5,7]

p=a;

*p +1 ==> *p 即指標p的內容, 是1, 再=1, 結果是2

*(p+1) ==》指標p下移乙個位置的內容, 即3

int a[5]={1,2,3},*p=a;則*(p+1)的值是2 求解釋

6樓:匿名使用者

int a[5]=陣列抄在記憶體中申請了五個襲連續的位址,假設是五個方框吧□□□□□,依次存放了1,2,3,0,0;

*p=a;定義了乙個指標,指向a陣列的首位址,也就是第乙個方框,p+1,就是指向第二個方框。*(p+1)就是取p+1個方框內的資料,據上面分析,我們可知它是2.

7樓:匿名使用者

inta[5]=,i//定義

baiduint陣列a->5個連續的int儲存空間zhi首位址dao,按順序內

值為1,2,3,4,5;int*p=a;//定義int指標,並初始化值為a,指向容陣列首位址p+=2;//指標按int型別方式向下偏移2位,指向從a[0]->a[2],值從1->3for(i=0;i==0;i++)//for迴圈i初值為0(迴圈入口),迴圈判斷為i==0(每次迴圈前),i++為迴圈增量(每次迴圈後)cout<<*(p+2);//向cout流輸出*(p+2)的值,預設為std終端,p+2同上,指向a[4],*(p+2)為指向位址值為5。該迴圈一次後中斷

8樓:夏夜風襲

p 的值是 a 的位址,運算子 * 是定址,*(p+1) 就是 a[1] ,即為 2

設有定義int a[]={1,3,5,7,9},*p=a; while(*p!=3) p++; 結果為7的表示式是: *(p+2)能否詳細解釋下

9樓:匿名使用者

int a=,*p=a; //定義乙個陣列a,共五個元素;同時定義乙個指標p指向陣列a的首位址

p -> a[0]=1 即p是a[0]的位址p+1 -> a[1]=3 p+1是a[1]的位址,下同p+2 -> a[2]=5

p+3 -> a[3]=7

p+4 -> a[4]=9

while(*p!=3) p++; //*p是取位址中的內容(資料),當*p不是3時,p++完成向後移動乙個資料

當*p==3時,p當前值為 原p+1 ,即指向a[1]此時的p +1指向a[2]=5

所以,此時的p +2指向a[3]=7

即:*(p+2)==7

10樓:lzh劉振華

int a=,*p=a; //p為指標,p指向int型陣列a的首位址即 &a[0]

while(*p!=3) // *p 是p所指向的陣列的元素 ,當*p 的值是3時退出while迴圈

p++; // p指向陣列a的下乙個元素。

當while迴圈結束時 p 指向 a[1]的位址,*p == a[1];

p+2 指向 a[1]下乙個元素a[2]的下乙個元素a[3],即p+2是指向a[3]的指標,所以*(p+2) 的值是7

11樓:匿名使用者

int a=,

*p=a; // 將首個元素位址賦給p 此時*p=1

while(*p!=3)

所以 結果為7的表示式是: *(p+2) 等價於 *(p+4)

12樓:孝感

初始時p指向a陣列的開始.

經過while(*p!=3) p++;

時p指向了3

所以p+2就是指向7這個位值.

已知:int a[]={1,2,3,4}, y, *p=a;則執行語句y = (*++p)--;之後, 陣列a各元素的值變為?

13樓:匿名使用者

已知int a=, y, *p=a;則執行來語句y = (*++p)--;之後自, 陣列a各元素的值變為1,1,3,4 。

標準函式int(x)其基本功能是得到乙個不大於x的最大整數,如int(3.59)=3,int(-2.01)=-3。

int函式是乙個用途很廣的函式,在教學中能有目的的分列其使用技巧。

c語言沒有規定各種整數型別的表示範圍,也就是說,沒有規定各種整數的二進位制編碼長度,對於int和long。

14樓:

b正確,選b。++p使p指向了2,*++p就是a[1],(*++p)--就是a[1]--。變數y的值是2,y=a[1]--;是把a[1]的值賦給y後才對a[1]作減一運算。

15樓:匿名使用者

執行過程是p++,然後y=*p;然後(*p)--。

即p的指標位增加一,然後賦值,最後指標對應值減一,即y=a[1],然後a[1]=a[1]-1;

綜上答案是b、b

16樓:匿名使用者

先++p,p指向a[1],

再*p,=2;

賦給y,y=2;

最後*p=2,--後,*p=1

所以是b b

C 語言中,用for迴圈輸入一維陣列int a0for int i 0 i

不行,陣列必須有實際大小,才能分配記憶體 你這樣寫這個陣列就只有乙個元素 c 中我要用乙個for迴圈語句輸入一維陣列for int i 0 i include using namespace std int main c 語言當中的程式設計 for int i 0 i 5 i 這段話是什麼意思呢 1...

c陣列名表示陣列的首位址,對於字元陣列,陣列名表示什麼

int a 4 a表示a 0 的位址char str 4 asd str表示 字串 asd 非等號後面的 asd 的首位址,是版str 0 的首位址,是 a 的首位址 cout 個字串,cout對於字串就是這樣處理的,輸出字串內容 而a輸出的是a 0 的位址 cout對於非字串,就會輸出陣列名所表示...

c 中陣列型別在程式中沒有下標

以上 抄 從書寫規則上襲 來說是沒有問題bai的 c 一般情況下陣列定義 du為 int a 10 定義陣列dao並賦初值for int i 0 i 10 i printf d a i 陣列下標從0 開始 c 如何定義陣列下標 c c 中的下標,必須從0開始。比如int a 10 那麼下標範圍是0到...