因格式問題,截圖上傳。
27.double_pointer
/* * 公司:***x
* 部落格:
* github:
* 專案:二重指標和二維陣列
* 功能:演示二重指標的用法。
*/#include
void func(int
**p)
int main(int argc, char **argv)
; // 定義指標陣列,陣列元素為int
*型別 int
**p5 = array; // 陣列名array做右值時表示陣列首元素首位址,即int
**型別
printf("**p5 = %d. **(p5+1) = %d.\n", **p5, **(p5+1)); //
**p5 = 12. **(p5+1) = 15.
// 在某個函式內部通過二重指標傳參改變一重指標的指向
int f = 20;
int*p6 = &f;
printf("p6 = %p.\n", p6); // p6 = 0xbfd2f3b8.
func(&p6);
printf("p6 = %p.\n", p6); // p6 = 0x12345678.
return
0;}
27.darray
/* * 公司:***x
* 部落格:
* github:
* 專案:二重指標和二維陣列
* 功能:演示二維陣列的兩種訪問方式。
*/#include
int main(int argc, char **argv)
, };
int i = 0, j = 0;
// 通過下標訪問二維陣列
for (i=0; i<2; i++)
// a[1][0] = 4. a[1][1] = 5. a[1][2] = 6.
}// 通過指標方式訪問二維陣列
int (*p)[3] = a;
for (i=0; i<2; i++)
}return
0;}
27.darray_pointer
/* * 公司:***x
* 部落格:
* github:
* 專案:二重指標和二維陣列
* 功能:演示二維陣列和指標的糾葛。
*/#include
int main(int argc, char **argv)
, , };
int i = 0, j = 0;
// 指標指向二維陣列的陣列名
int (*p1)[2] = array;
for (i=0; i<3; i++)
}// 指標指向二維陣列的第一維
int *p2 = array[0];
printf("*(p2+1) = %d.\n", *(p2+1)); // *(p2+1) = 2.
// 指標指向二維陣列的第二維
int *p3 = &array[0][0];
printf("*(p3+1) = %d.\n", *(p3+1)); // *(p3+1) = 2.
return
0;}
二維陣列與二重指標賦值問題之實驗
前一段時間做了乙個關於二維陣列和二重指標的互相賦值的實驗,很有意思,特記錄下來。由於陣列是指標的語法糖,所以我之前一直認為兩者可直接進行賦值轉換。後來發現在二維陣列中這樣做是不可行的,現將實驗現象記錄如下 實驗 include int main int argc,char ar int p1 a 報...
二維陣列 二維陣列和指標
include using namespace std int main 如上面這段程式所示,通過取位址符 指標 p 獲得了變數 a 的位址,那麼解引用符 就可以從 p 中得到變數 a 的值。也就是說,p a和 p a是等價的。p 是變數 a 的位址,從 p 中就可以取出 a 的值。反之,能從 p ...
二維指標和二維陣列
二維指標和二維陣列有三種形式 1,type ptr 2,type ptr或者type prt 3,type prt 三種形式意思相近,也有區別。首先三種形式都能表示二維的資料結構。1,type ptr 表示乙個指向指標的指標 但是在一開始宣告的時候 type ptr ptr到底指向幾個指標是不知道的...