1樓:紫彩萬水
* 的名稱是取值運抄算符,襲
它的優先順序比 [ ] 低,因此導致了 *p[10] 和(*p)[10] 意義不同,
*p[10] 即 *(p[10]), p 先與 [10] 結合,成為 p[10] 陣列,說明 p 是一個陣列,再取 p 陣列的值,一個指標肯定不夠,所以需要十個指標,*p 就是指標陣列了。
(*p)[10] , p 先與 * 結合,即取 p 的值,一個值 p 和一個陣列下標[10]結合,這是什麼?
不妨令 p=a;那麼 p[10]=a[10] ,這就是一個陣列啊,而 a 是 a[10] 的什麼?名稱!所以
p 就是 p[10] 陣列的名稱 、存放陣列地址。
最好記的方法還是直接讀,*(p[10])陣列,指標,反過來:指標陣列
(*p)[10] 指標、陣列,反過來:陣列指標
你第一個念出來的就是它的名稱,第二個念出來的就是它的型別了。
誰讓這c語言是個人主義(說好聽點就是民主主義)國家發明的呢,姓名倒置,先呼名,後呼姓,正好與中國思維相反,我們是先顧大我,後顧小我的團結精神。
2樓:
int *p[10] 表示指標陣列,有
bai10個元素,
du每個都是指向整型變數zhi的指標dao。
int (*p)[10]表示行指標,指向一行回有10個元素答的指標,其型別與二維陣列名相同。如,可以這樣使用。
int a[2][10];
int (*p)[10]=a; //p指向陣列a的首行。
3樓:匿名使用者
1. int *p[10]中p是
一個陣列
。可以理解為 int *(p[10]),先定義一個一維陣列,再看括號外,陣列中每回個變數都是int型指標。答
2. int (*p)[10]中p是一個指標。它的型別是:指向int x[10]這樣的一維陣列的指標。
這樣說lz是否能覺得清晰些。
int *p=new int; int *p=new int[10]; int *p=new int(10);這三個有什麼區別,什麼時候用?
4樓:
int *p=new int;——分配一個baiint型變數所du佔大小的空間,zhi並將首地址賦給int *型指
dao針p。
int *p=new int[10];——分配一專個有10個int型元素屬
的陣列所佔空間,並將該陣列的第一個元素的地址賦給int *型指標p。
int *p=new int(10);——分配一個int型變數所佔大小的空間,在其中放入十進位制數10,並將首地址賦給int *型指標p。
至於怎麼用,那知道了意思,就只能說按需要選擇了……
請問intp 4和int p ,請問 int p 4 和 int p 4 的區別並舉例
4 p的區別bai 由於裡面du牽扯一些東西比較深,zhi我簡單的dao講講吧 p 4 是指標陣列內,容 他是陣列。陣列裡面放的是指標,簡單的說定義了4個指標,分別是 p 0 p 1 p 2 p 3 相當於將這四個指標打包到這個陣列中 p 4 是陣列指標,他是指標並且是一個指向二維陣列的指標。因為以...
intp和intp有什麼區別
int p表示的是一級指標,表示p所指向的地址裡面存放的是一個int型別的值。int p表示的是二級指標,表示p所指向的地址裡面存放的是一個指向int型別的指標。一級指標存放變數的地址,指向的值是變數的內容。如int p p 陣列的首地址,p 陣列的第一個值 二級指標存放一級指標的地址,指向一級指標...
c語言指標,inta1intp其中pa和
指標本質就是儲存記憶體地址的一個變數。所以指標可以指向某個變數在記憶體中儲存的單元格嘛。變數去訪問單元格最後也是編譯器通過變數名和地址一一對應去查詢的。而指標裡面直接儲存的就是地址,所以直接可以訪問地址所對應的單元格。不知道樓主說的是說明情況。所以幾種可能的都說一下 測試 include stdio...