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...