1樓:
int *p[4] :指標陣列,包含4個指向int變數的指標;
int p[4] 陣列
int *p 指向int變數的指標
int *(p[4]) 與 int *p[4] 等價版int (*p)[4] 指向一維數
權組的指標
2樓:嘿嘿的想你
int p[4] 是定義一個
複數制組
int *p 是定義一個指向整型資料的一個變數int *(p[4]) 是定義一個指向整型的陣列int (*p)[4] 是定義一個陣列指標,也就是說陣列裡面每一個元素都是一個指向整型資料的變數
int *p[4]與int(*p)[4]等價
有定義語句:int *p[4];以下與此語句等價的是a)int p[4]; b)int **p;c)int *(p[4]); d)int (*p)[4];
3樓:匿名使用者
int *p[4]; p是個陣列,有四個元素空間,每個元素都是一個int *指標
a)int p[4]; 這個明顯不對
b) int **p; 這個不會是等價的,因為這裡的p是個二維指標
c) int *(p[4]); 這個是等價的!!答案就是它了!!
d) int (*p)[4]; //這裡的p是個指標,指向一個有四個int型別資料的陣列
若有定義:int *p[3];'則以下敘述正確的是 幫我詳細說說為什麼!謝謝~~
4樓:匿名使用者
a的說法
,就bai是p本質上是個陣列
du,只zhi不過陣列中的每個元dao
素都是指標內
b的說法,就是p本質上是容個指標,指標指向一個一維的陣列這種題的話,其實可以先根據運算子的優先順序、結合性,先確定識別符號本質上是一個什麼,然後再去補充
例如,int *p[3],先根據優先順序,等效於*(p[3]),所以p本質上是一個有三個元素的陣列;那麼陣列的每個元素又是什麼呢?是一個指標;那指標指向的又是什麼呢?是指向一個int型的資料;所以整理一下就是p是一個有三個指向int資料的指標的陣列,本質上就是一個陣列
5樓:
int *p[3];'則以下敘述正確bai的是a.定義了一du個指標zhi
陣列daop,該陣列含有三個元素,內每個
容元素都是基型別為int的指標
與b.定義了一個可指向一維陣列的指標變數p,所指一維陣列具有三個int型別元素
敘述吻合的是
int (*p)[3];
int(*p)[4]是什麼意思,int(*p)[4]=a又是什麼意思呢?謝謝~~~~
6樓:匿名使用者
int (*p)[4]=a ; 定義一個行指標,並指向二維陣列的第0行(a 在這裡表示二維陣列的首地址,即第0行的首地址,這和一維陣列有些區別) int *q=a[0]; 或者 int *q = &a[0][0]; 這兩個效果一樣, 都建立了一個簡單的整型指標,並指向二維陣列第一個元素的首地址,這樣的話 指標可以在陣列中逐個訪問陣列元素.(在二維陣列 a[3][4]裡 a[0] 表示第0行第0列元素的地址,依次類推 a[i]+j 表示第 i 行第 j 列元素的地址) (*p)[i+i/2]=*q+1; 這段**只執行一次, (*p)[i+i/2] 表示第0行第 0 列的元素((*p)與a[0]是等價的) *q表示 第0 行第0列元素的值1,所以這句話的意思是把 二維陣列的第一個元素加 1,變成2 ,p++,++q這句話執行兩次,p指向第2行,q指向第2列,接下來就是顯示 a[0][0] a[1][1] a[2][2] ( a[0][0]已經變為2),*((int *)p) 與 a[2][0]等價 *q 與 a[0][2]等價
個人見解 ,僅供參考!
7樓:
int(*p)[4]:ptr為指向含4個元素的一維整形陣列的指標變數(是指標);
至於int(*p)[4]=a表示對[4]表示的指標變數賦值,不過嚴格來說如果前面是型別定義語句,後面這個表示就越界了。
與int *p[4];等價的是a)int p[4] ;b)int **p; c)int *(p「4」) ;d)int (*p)「4 為什麼?
8樓:**頁
a 錯 相當於4個int
b 錯 相當於指向int*的指標
c 對
d 錯 相當於指向四個int的陣列的指標。
原因:int * p[4] 中[4] 比* 更優先結合p,所以首先,它是陣列,長度為4,接著,陣列的元素型別是int*。
也就是能儲存四個int*型別的陣列。
int(*p)[4] int*p[4]
9樓:匿名使用者
樓主你好。首先學習指標是有好多概念容易混淆。下面我來幫你區別一下:
1、int(*p)[4];------ptr為指向含4個元素的一維整形陣列的指標變數(是指標)
2、int *p[4];-------定義指標陣列p,它由4個指向整型資料的指標元素組成(是陣列)
3、int(*)[4];--------實際上可以看作是一種資料型別。也就是第一個(int(*p)[4];)中定義的p的資料型別
其實你要看這種到底是什麼,就是要看他最先和誰結合。 比如1中p先與*結合,那就說明p本質是一個指標;而2中p先與後面的[4]結合,說明他本質是一個陣列。再慢慢理解。
希望能幫到你。如有疑問可以再問我。
10樓:竹竹風子
當然不是,int(*p)[4]表示p是一個指標變數,它指向包含4個整型元素的一維陣列
而int *p[4],由於方括號運算級別高,因此p先與[4]結合,此時p[4]定義成陣列形式,再與前面的 * 結合,這樣一來就是一個存放指標的陣列了。
11樓:冷漠鑑客
int(*p)[4] 是一個指向4個整形數陣列的指標
int*p[4]是一個有4個指標的陣列,該指標是一個指向一個整型數的。
這個在c語言裡是難點,初學時很容易混淆,不過你先找變數,然後先往右看,如果遇到圓括號(一般是圓括號,而且是右半邊,如果是左半邊就說明它是一個函式)就往左,比如第一個p先往右,然後遇到括號,所以往左看到*,證明他是一個指標,是一個指向整形數陣列的指標。第二個,p向右,是一個陣列,是一個有4個指標的陣列。
12樓:匿名使用者
int(*p)[4];------p為指標變數指向含4個元素的一維整形陣列(p是一個指標)
int *p[4];-------定義指標陣列p,該陣列中有4個整形指標變數,(p是指標陣列,其中有4個指標)
c語言中 int*p[4] 和 int(*p)[4]的區別
13樓:天雲一號
int *p[4]; //定義一個指標陣列,該陣列中每個元素是一個指
針,每個指標指向**就需要程式中後續再定義了。
int (*p)[4]; //定義一個陣列指標,該指標指向含4個元素的一維陣列(陣列中每個元素是int型)。
區分int *p[n]; 和int (*p)[n]; 就要看運算子的優先順序了。
int *p[n]; 中,運算子[ ]優先順序高,先與p結合成為一個陣列,再由int*說明這是一個整型指標陣列。
int (*p)[n]; 中( )優先順序高,首先說明p是一個指標,指向一個整型的一維陣列。
14樓:匿名使用者
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])
是等價的。
15樓:
int* p[4] // 4個元素的
陣列,元素為int型別的指標
int (*p)[4] // p是一個指標,它指向 4個int型元素的陣列
int (&p)[4] // p是引用, 它引用 4個int型元素的陣列.
16樓:匿名使用者
int *p[4] 是一個存int* 的一維陣列
int (*p)[4] 是一個int 陣列 *p指向a[0]
數學中如何區分命題與定義,數學命題的定義是什麼
定義是通過列出一個事物或者一個物件的基本屬性來描寫或者規範一個詞或者一個概念的意義。被定義的事物或者物件叫做被定義項,其定義叫做定義項。1 一般的,在數學中我們把用語言 符號或式子表達的,可以判斷真假的陳述句叫做命題。其中判斷為真的語句叫做真命題,判斷為假的語句叫做假命題。2 若p,則q 形式的命題...
如何理解貨幣的本質是一般等價物貨幣與一般等價物的關係是如何理解的?
隨著社會生產力和社會分工的發展,物物交換不斷擴大,參加交換的商品種類越來越多,一種商品可與多種商品相交換。物物交換的明顯缺點是 物物交換要求雙方都需要對方的商品,交換才能成功,否則交換就無法進行。為了克服物物交換的困難,人們在長期無數次交換的實踐中找到了辦法。一般等價物就是從其它商品中分離出來的,可...
人體健康與化學密切相關,以下敘述錯誤的是A硝酸銨溶
a 硝酸銨溶解於水吸收熱量,製成的冰袋可用於給發燒病人降溫 所以敘述正確 b 碘酒是碘的酒精溶液,其中碘是溶質,酒精是溶劑 所以敘述正確 c 製作糕點時,部分小蘇打是通過受熱分解產生二氧化碳氣體使糕點疏鬆多孔,所以敘述正確 d 破皮鞋製成的工業明膠 重金屬鉻的含量嚴重超標,服用這樣的膠囊會對人體造成...