C語言複習 指標和陣列

2021-09-01 13:42:49 字數 1181 閱讀 9124

#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 個位元組,至於它指向的陣列佔多少位元組,不知道。它是 指向陣...