與int p等價的是A)int p 4B)intp C)intp 4D)intp)

2021-05-14 01:34:45 字數 5082 閱讀 3532

1樓:**頁

a 錯 相當於4個int

b 錯 相當於指向int*的指標

c 對

d 錯 相當於指向四個int的陣列的指標。

原因:int * p[4] 中[4] 比* 更優先結合p,所以首先,它是陣列,長度為4,接著,陣列的元素型別是int*。

也就是能儲存四個int*型別的陣列。

const int *p和int * const p的區別

2樓:育知同創教育

const int *p和int * const p的區別如下:

const int *p表明指向的物件是const型,不可以修改,但是指標p的指向可以修改。

* const p表明指標變數p是const型,它的指向不可修改,但是指向的物件可以修改。

一般來說用*限定的是指標區域存放的內容,不用*的是記憶體地址。

3樓:刀無極啊

你可以看看這篇文章,講的很仔細

若有定義 int a[3][4],b[4][3],(*p)[4]; 下列賦值等式正確的是 答案是 p=&a[1] p=b為什麼錯

4樓:匿名使用者

(*p)[4]的意思是:p是一個指向具有4個int型別元素陣列的指標。

a[3][4]有3行,每行的元素有4個

b[4][3]有4行,每行的元素有3個

所以 p=&a[1]是對的,讓p指向a的第二行的四個元素,因為a的每行有四個元素,這與p的定義恰恰是匹配的。

c語言中 int*p[4] 和 int(*p)[4]的區別是什麼?

5樓:匿名使用者

int*p[4]是指標的陣列

,也就是說它

是一個陣列,陣列裡存的是一個個的指標

int(*p)[4]是陣列的指標,也就是說它是一個指標,指向的是一個陣列。指標指向的型別會影響到指標加減運算時地址的位移。比如說有一個陣列 int a[4],加上取址運算子 &a,這個表示式的型別就是指向陣列的指標,可以這樣賦值 p = &a;。

一般用於向函式傳遞二維陣列的時候使用這種型別,這時還有一種更直觀的寫法

void matrix_sum(int matrix_a[4], int matrix_b[4])

這種寫法和

void matrix_sum(int (*matrix_a)[4], int (*matrix_b)[4])

是等價的。

6樓:望闌珊將盡

結合性不一樣:前者是指標陣列,為4個int指標的陣列,有4個元素;後者是陣列指標,為一個指標,型別為指向包含4個int型別元素的一維陣列的指標。

已知int a[3][4],*p;p=(int *)a;對陣列a的第2行第2列的正確引用是 a.a[2][2] b.p[5] c.a[5] d.p[1][1]

7樓:匿名使用者

c語言陣列從0開始編號. 所以2行2列值為 a[1][1]以a訪問,選項中沒有正確的.

p為一維指標, 指向第一個元素地址.

a每行4個元素,所以 a[1][1]為陣列a中的第6個元素(4+2)所以 就是p[5]選b

8樓:匿名使用者

答案為:b

這是因為,a本來是&a[0],即第0行的起始地址,而p是基型別為int的指標變數,所以直接把a賦值給p是不可以的,而可以把(int *)a(即把a進行了強制型別轉換後再賦值給p)賦值給p。所以,p指向了陣列a的首個元素,陣列的第2行第2列元素a[1][1],恰好是該陣列的第6個元素(第一行4個),因此其地址是p+5,對應元素為*(p+5)或p[5]

9樓:匿名使用者

答案是選b,其實樓上的人已經解釋的很清楚了,還有一點就是其實陣列屬於線性結構的資料結構,其在記憶體中的存放形式是順序存放的,在記憶體是連續的存放的,所以樓上的解釋就更容易理解了!

c語言中 int*p[4] 和 int(*p)[4]的區別

10樓:天雲一號

int *p[4]; //定義一個指標陣列,該陣列中每個元素是一個指

針,每個指標指向**就需要程式中後續再定義了。

int (*p)[4]; //定義一個陣列指標,該指標指向含4個元素的一維陣列(陣列中每個元素是int型)。

區分int *p[n]; 和int (*p)[n]; 就要看運算子的優先順序了。

int *p[n]; 中,運算子[ ]優先順序高,先與p結合成為一個陣列,再由int*說明這是一個整型指標陣列。

int (*p)[n]; 中( )優先順序高,首先說明p是一個指標,指向一個整型的一維陣列。

11樓:匿名使用者

int*p[4]是指標的陣列,也就是說它是一個陣列,陣列裡存的是一個個的指標

int(*p)[4]是陣列的指標,也就是說它是一個指標,指向的是一個陣列。指標指向的型別會影響到指標加減運算時地址的位移。比如說有一個陣列 int a[4],加上取址運算子 &a,這個表示式的型別就是指向陣列的指標,可以這樣賦值 p = &a;。

一般用於向函式傳遞二維陣列的時候使用這種型別,這時還有一種更直觀的寫法

void matrix_sum(int matrix_a[4], int matrix_b[4])

這種寫法和

void matrix_sum(int (*matrix_a)[4], int (*matrix_b)[4])

是等價的。

12樓:

int* p[4] // 4個元素的

陣列,元素為int型別的指標

int (*p)[4] // p是一個指標,它指向 4個int型元素的陣列

int (&p)[4] // p是引用, 它引用 4個int型元素的陣列.

13樓:匿名使用者

int *p[4] 是一個存int* 的一維陣列

int (*p)[4] 是一個int 陣列 *p指向a[0]

int a[3][4],(*p)[4]=a;則與表示式*(a+1)+2不等價的是 a:p[1][2] b:*(p+1)+2 c:p[1]+2 d:a[1]+2

14樓:匿名使用者

是a吧,a已經不是一個地址了

b,c,d和*(a+1)+2都還是一個地址,要加上*()才能輸出值的

int (*p)[4]和int * p[4]到底是神馬意思啊

15樓:

int *p[4]中定義的p是有4整型指標的陣列

int(*q)[4] q是指向具有4個整型元素的陣列的指標!

用法int f[10];

int x[4],y[4],z[4],w[4];

int a,b,c,d;

int *p[4] =;

和int *p[4] =;

p[0]= x;p[1]=y;p[2]=z;p[3]=w;

//*(p[0]+1) == x[1]

p[0]+1 == x+1;

都是可以的;

初始化:

int(*q)[4] =;//不可以int(*)[4]與int* [4]不相容;

int(*q)[4] =; ;//不可以int(*)[4]只是一個指標;

int(*q)[4] =x ; //不可以 q 是int(*)[4]; x是int* 不相容;

int(*q)[4] =&x ; //q,&x 都是 可以int(*)[4] ;

int(*q)[4] =&f ; // 不可以q 是 int(*)[4],&f是int(*)[10];不相容

賦值:q =x ; //q 不可以 q 是int(*)[4]; x是int* 不相容;

q =;//不可以int(*)[4]與int* [4]不相容,不可以這樣賦值;

q =; ;//不可以int(*)[4]只是一個指標,是個4個整型元素陣列的指標;

//{} 內是int *[4] 是個int *指標的陣列

q =&x ; //可以q,&x 都是 int(*)[4] ;

q =&f ; // 不可以q 是 int(*)[4],&f是int(*)[10];不相容

*q 是個四個元素的陣列

(*q)+1 陣列第一個元素的地址

(*q)[1] 陣列第一個元素

16樓:示申僉

int *p[4]定義一個指

針陣列,這個陣列的每個元素都一個指向int資料型別的指標。

比如:int a=1,b=2,c=3,d=4;

int *p[4]=;

int (*p)[4]定義一個指向一個一維陣列的指標,這個一維陣列資料型別是int,共有四個元素。

比如:int a[4]=;

int (*p)[4];

p=a;

17樓:田雲來啦

不是的,*p[4]表示長度為4的指標陣列(本質是一個陣列,就當一個陣列用就行了),而(*p)【4】表示指向長度為4的陣列的一個指標(本質是一個一級指標),當然他們的具體更加詳細的區別(指標陣列和陣列指標)可以參考你的學習資料啦,而二級指標的一個標誌是有兩個**的,在實際應用中一般很少用到二級指標或多級指標,用一級指標指向二維陣列(如(*p)【3】【4】)來進行排序的比較常見,希望可以幫助你,有什麼不懂得可以追問

若有定義:int *p,a=4; p=&a;則以下均代表地址的是: a)a,p b)&a,p c)&a,*p d)a,*p

18樓:倒黴熊

選擇ba a表示4

c *p表示的就是 a的值 也就是4

d 兩個都是值

nah2po4與na2hpo4的混合液是緩衝溶液嗎

是緩衝溶液,ph值在7.2左右 磷酸的ka2 7.2 nah2po4 和 na2hpo4緩衝原理 簡單來copy說就是溶液中h 增多時會bai被na2hpo4 吃du掉 生 成nah2po4 oh 增多時會被nah2po4 吃掉 生成nahpo4和水。zhi 而nah2po4和na2hpo4自身電離...

長方形操場的周長是420米,長與寬的比是43。這個操場

一個長方形操場的周長是420米 長 寬 4420 2 210 長210 4 3 4 120 寬210 120 90 面積120 90 10800 420 2 210米 210 3 4 30米 3 30 90米 4 30 120米 120 90 10800平方米 解 依題意可設該長方形的長為4a米,寬...

43乘以27中,2與4相乘的積是

43乘以27中,2與4相乘的積是 800 和電動車的地方嘎嘎嘎 算式43x27中,2與4相乘的積表示 算式43x27中,2與4相乘的積表示 8個百 算式43x27中,2與4相乘的積表示 算式43x27中,2與4相乘的積表示 20 40 2與4相乘的積表示 800 5.8乘以4表示 它們的積是 5.8...