#include #include // 陣列是一塊連續的記憶體空間 陣列名 就是記憶體空間的首位址
// 陣列名[i] == *(陣列名+i);
main()
;
printf("a[0]=%d\n",arr[0]);
printf("a[4]=%d\n",arr[4]);
// 邏輯上是錯誤的** 陣列下標越界
// printf("a[5]=%d\n",arr[5]);
// windows xp 緩衝區越界補丁
// arr是乙個什麼東西呢?
printf("arr = %#x\n",arr);
// 回答:列印 陣列的第乙個元素的位址
printf("arr[0]位址 = %#x\n",&arr[0]);
// 列印陣列中的第二個元素
printf("arr[1]=%d\n",arr[1]);
printf("arr[1]=%d\n", *(arr+1));
//問題: arr[i] *(arr+i) 代表的是同乙個變數麼?
// 代表的是同一塊記憶體空間 指向的是同乙個變數
//通過實驗 : 陣列名表示的 就是這個陣列第乙個元素 的首位址
system("pause"); // 呼叫windows下系統的命令 讓程式暫停執行 方便觀察程式的執行結果
}
#include #include main()
; //一塊連續的記憶體空間
char* p1 = &arr[2];
printf("char = %c\n", *(p1-1));
// char 記憶體中占用 1個位元組
// int 記憶體 中占用 4個位元組
int intarr[5]=; //一塊連續的記憶體空間
int* q1 = &intarr[2];
printf("char = %d\n", *(q1-1));
// 指標的運算 按照 約定好的資料型別 偏移相對應的記憶體空間的大小
system("pause"); // 呼叫windows下系統的命令 讓程式暫停執行 方便觀察程式的執行結果
}
c語言複習 指標和陣列
注 本文是對蘇小紅版c語言程式設計第11章的筆記 陣列名代表陣列元素的連續儲存空間的首位址,即指向陣列中的第乙個元素的指標常量。e.g.a a 0 a i a i 不能對陣列名執行增1或減1的操作 a是指標常量 p 1 和p 本質上是不同的操作 雖然二者都對指標變數p進行加1運算,但p 1不改變指標...
C語言指標陣列和陣列指標
初學者總是分不出指標陣列與陣列指標的區別。其實很好理解 指標陣列 首先它是乙個陣列,陣列的元素都是指標,陣列佔多少個位元組由陣列本身決定。它是 儲存指標的陣列 的簡稱。陣列指標 首先它是乙個指標,它指向乙個陣列。在32 位系統下永遠是佔4 個位元組,至於它指向的陣列佔多少位元組,不知道。它是 指向陣...
C語言指標陣列和陣列指標
初學者總是分不出指標陣列與陣列指標的區別。其實很好理解 指標陣列 首先它是乙個陣列,陣列的元素都是指標,陣列佔多少個位元組由陣列本身決定。它是 儲存指標的陣列 的簡稱。陣列指標 首先它是乙個指標,它指向乙個陣列。在32 位系統下永遠是佔4 個位元組,至於它指向的陣列佔多少位元組,不知道。它是 指向陣...