已知定義int a a則對陣列元素正確的引用時 A p 1 Bp 3 Cp 1 3 Dp

時間 2021-05-05 23:16:48

1樓:匿名使用者

教你個簡便的方法。

*(p+i)等價於p[i],反過來也成立。只要把答案試下就知道了。

取位址和顯示內容是兩個相反的操作,可以互相抵消的)

b. *(p+3)=p[3]=a[3]

d. *(*p+2)=*(*(p+0)+2)=*(p[0]+2)=p[0][2]=a[0][2]。選d

2樓:寂寞而莫我知也

d是對的.把a賦值給陣列指標,下標的引用是*(*(p+n)+n) 或者a[n][n] 說的很清楚了

3樓:匿名使用者

d是對的,選擇的是a[0][2],相當於*(*(p+0)+2)

若有下列說明和語句:int a[4][5], (*p)[5]; p = a; 則對a陣列元素的正確引用

4樓:勾竹劇庚

首先呢,a是二維陣列,不解釋。

然後呢,p是乙個指標,什麼樣的指標呢,版就是指向一維陣列的權指標,而且這個一維陣列的元素個數呢是5.

然後呢,p=a;就是把p指向a陣列。

分析選項:

ap+1

.因為p是一維陣列指標,所以p每+1就是+1行。錯誤。

b*(p+3)是指第4行的首位址,訪問不到元素。需要再*c*(p+1)+3

對位址+3

沒啦意義

d*(*p+2)

*p是第0行首位址

+2呢就是第二個元素的位址,*取資料咯。

5樓:

(*p)[5]; -- (*p) 是乙個指標,抄(*p)[5] 用來指向有5個元素的陣列。

p=a; 就是 p=&a[0]; 指向a 的第一行的開始(如果是 p=&a[1]; 指向a 的第2行的開始)

語句裡 (*p) 是 第一行的開始

*(*p+2) 裡的 *p+2 是 第一行裡的第3個元素的位址,*(*p+2) 是該元素的值

int a[4][5]=;

int (*p)[5];

int i,j;

p = &a[0];

printf("*p= %d \n", *p ); // 列印位址

for (i=0;i<20;i++) printf("%d ", *(*p+i) ); // 列印所有陣列元素的值。

6樓:匿名使用者

p)[5]; -- (*p) 是一bai個指標,(*p)[5] 用來指向有du5個元素的陣列zhi

。p=a; 就是 p=&a[0]; 指向a 的第dao一行的開始內(如果是 p=&a[1]; 指向a 的第2行的開始)

語句裡容 (*p) 是 第一行的開始

*(*p+2) 裡的 *p+2 是 第一行裡的第3個元素的位址,*(*p+2) 是該元素的值

int a[4][5]=;

int (*p)[5];

int i,j;

p = &a[0];

printf("*p= %d \n", *p );

for (i=0;i<20;i++) printf("%d ", *(*p+i) );

7樓:匿名使用者

此題很簡單的,你只要明白a是二維陣列就好了,所以要訪問裡面元素必定有兩個*號,三維,四維依次類推

8樓:匿名使用者

*(*p+2) a[1][2]

若有定義:int a[5],*p=a; 則對a陣列元素位址正確引用的是( )。 &a[5] p+2 a++ &a 說詳細點謝謝

9樓:匿名使用者

若有定義:int a[5],*p=a; 則對a陣列元素位址正確引用的是(p+2 )。

&a[5]//錯誤,因為越界了

p+2 //指標,指向第三個元素的位址,即&a[2],正確a++ //語法錯誤,a為位址常量不可++&a //a本身就是位址,不需要增加&

10樓:自我程式設計

對a陣列元素位址正確引用 p+2 。

p指向a首位址(也就是a[0]的位址),p+2就是a[2]的位址,相當於&a[2]。

&a[5]是錯的,訪問越界了,陣列元素最後乙個是a[4]。

a表示陣列的首位址,本身是位址常量,不能賦值。所以a++是錯了。

&a也是錯的,a本身就是位址。

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

11樓:匿名使用者

已知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。

12樓:

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

13樓:匿名使用者

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

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

綜上答案是b、b

14樓:匿名使用者

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

再*p,=2;

賦給y,y=2;

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

所以是b b

int c[4][5],(*p)[5];p=c;能夠正確引用c陣列元素的是() a p+1

15樓:兔子

選ba p本身就是陣列c的首位址了,再對它取位址沒有語法錯誤,但是也沒有實際意義

b p + 3是c[3]的位址,*(p + 3)就是c[3]c c[5]陣列下標越界

d c也是陣列c的首位址,同a

請採納答案,支援我一下。

c語言若有下列說明和語句:int a[4][5], (*p)[5]; p = a; 則對a陣列元素

16樓:匿名使用者

如果定義int (*p)[n];p1=a;p1++後,p指向a[1][0];

則p+j將指向a[0]陣列中的元素a[0][j]。

由於a[0]、a[1]┅a[m-1]等各個行陣列依次連續儲存,則對於a陣列中的任一元素a[i][j],指標的一般形式如下:

p+i*n+j,相應的如果用p來表示,則為*(p+i)+j;

元素a[i][j]相應的指標表示為:

*( p+i*n+j) ,相應的如果用p1來表示,則為*(*(p+i)+j)。

推出以下的等價關係:

a+i == p+i;

a[i] == p[i] == *(a+i) == *(p+i);

a[i][j] == p[i][j] == *(a[i]+j) == *(p[i]+j) == *(*(a+i)+j) == *(*(p+i)+j)。

17樓:鍵盤未找到

a.表示&a[1].

b.a[3]

c.&a[1][3]

d.a[0][2]

18樓:匿名使用者

首先呢,a是二維陣列,不解釋。

然後呢,p是乙個指標,什麼樣的指標呢,就是指向一維陣列的指標,而且這個一維陣列的元素個數呢是5.

然後呢,p=a;就是把p指向a陣列。

分析選項:

a p+1 .因為p是一維陣列指標,所以p每+1就是+1行。錯誤。

b *(p+3)是指第4行的首位址,訪問不到元素。需要再*c *(p+1) + 3 對位址+3 沒啦意義d *(*p+2) *p是第0行首位址 +2 呢就是第二個元素的位址,*取資料咯。

19樓:一方通通

本題中定義了乙個二維陣列c和乙個陣列指標p並初始化讓它指向c,顯然此時p中的各元素為位址,

a中p+1,此時的1代表的長度是整個二維陣列c的長度,p+1將讓p指向c陣列後面的元素,故不能引用c陣列中的成員,故選項a錯誤;同理,選項b和選項c都不正確,

d中p[0]+2代表的是第一行第三個元素的位址,而*(p[0]+2)將代表第一行第三個元素的值。

c語言若定義int a[5],*p=a;則對a陣列元素正確引用為哪個?為什麼?

20樓:

選d,c中p最多加4,因為陣列是從0開始的!

若定義int a[5],*p=a;則正確引用陣列元素的是求詳細分析過程 謝。。。

21樓:及時澍雨

若定義int a[5],*p=a;

則a選項中,*&a[5],

&a[5]是a[5]的位址,

*&a[5]是a[5]本身

但數列中沒有a[5]這個元素,錯誤。

*與&為逆運算

b選項中*a+2

*a為a[0]

則*a+2為a[0]+2,不是a[2],錯誤c選項中*(p+5)

p+5=a+5為a[5]的位址

*(p+5)為a[5],

如同a中,數列中沒有a[5]這個元素,錯誤。

d選項中,*(a+2)

a+2為a[2]的位址

*(a+2) ==a[2]與a[2]等同選d

已知f x 2 的定義域為,求f(2x 1)的定義

問 f x 2 的定義域是 1,2 不應該是f x 2 的定義域是1 x 2 2嗎?不是,是自變數x的範圍是 1,2 若3 x 2 4,為何f x 的定義域為 3,4 x 2是f x 2 中,括號中的整個部分,所以f x 中的整個部分 x 的範圍同f x 2 中的整個部分 x 2 即使1 x 3 2...

已知f(x 10)定義域是( 1,3)求f( 3 x 定義域

已知f x 10 定義域是 1,3 求f 3 x 定義域f x 10 的定義域是 1,3 就是f 1 10 至f 3 10 即f 11 至f 7 有定義,3 x 11時,x 8,3 x 7時,x 4,所以 f 3 x 的定義域為 8,4 f x 10 f y x 10 y y 10 x x的定義域是...

已知定義int a 2,則表示式a a a a a的值是

這個表示式無意義,編譯器會給出警告資訊。該表示式的值與編譯器相關 非要執行,看一下這句在gcc給出的反彙編 0x401476 mov eax,0x1 0x40147b sub eax,dword ptr esp 0xc 0x40147f mov edx,dword ptr esp 0xc 0x401...