C語言基礎 陣列與指標之間的引用

2022-08-25 17:09:21 字數 1129 閱讀 6619

通過指標引用陣列,通過陣列引用指標,你搞明白了麼?通過下面3種情形來了解一下陣列和指標

case 1.

unsigned char arry[10

];unsigned

char *ptr;

unsigned

char a, b, c;

ptr = arry;

a = ptr[0];

b = ptr[1];

c = ptr[2];

case 2.

unsigned char arry[10

];unsigned

char *ptr;

unsigned

char

a, b, c;

ptr =arry;

a = *ptr;

b = *(ptr+1

);c = *(ptr+2);

case 3.

unsigned char *ptr = (unsigned char *)0x20000000

;unsigned

char

a, b, c;

a = ptr[0

];b = ptr[1

];c = ptr[2];

以上3種情形編譯都能通過,想要表達的是怎樣用陣列的方式(下標)表達乙個指標內容,和怎樣用指標變數的方式表達乙個陣列。

對於case 1,c語言規定,陣列名(不包括形參陣列名,形引數組並不佔據實際的記憶體單元)代表陣列中首元素(即序號為0的元素)的位址,所以ptr指向陣列arry的首位址。那麼帶下標的指標變數是什麼含義呢?其實在程式編譯的時候,對下標的處理方法是轉換為位址的,對ptr[i]處理成*(ptr+i)。

case 2 是指標的常規引用,case 3和case 1類似,都是帶下標的指標變數的應用。

通過以上的簡單分析,可以得出乙個結論,下標法直觀,指標變數法效率高。

[參考]:

[1] 譚浩強著. c程式設計教程. 北京:清華大學出版社,2007

/×××××××××××××××××××××××××××××××××××××××× the end××××××××××××××××××××××××××××××××××××××××××××/

C語言基礎 指標陣列與陣列指標

一 指標陣列 在這一節中我們來學習乙個陣列,這個陣列比較特殊,也比較普通。說它特殊是因為這個陣列是指標的陣列,也就是說我們有乙個陣列,這個陣列裡存放的變數型別是指標型變數 說它普通是因為陣列變數其實與其它普通變數沒有什麼區別,指標變數就是一種可以存放記憶體位址的變數,所以它們也可以被定義成一串連續的...

C語言基礎 指標與陣列

1.陣列指標 概念 指向陣列元素的指標 作用 使用陣列指標間接訪問陣列的元素 定義 int p 初始化 int a 4 int q a 定義了乙個指標變數q,賦值陣列的首位址 第乙個元素的位址 q指向了陣列的第乙個元素 int q a 0 跟上面等價陣列指標如何去訪問陣列元素 p 1 表示指向陣列的...

C語言基礎 指標與陣列

一 資料的位址和通過位址訪問資料 1 基本的資料型別的位址 int a a 變數a的位址 2 陣列的位址 int a 5 a,a,a 0 3 函式的入口位址 函式名 或者 函式名 4 通過位址去訪問記憶體中的資料 通過間接訪問運算子 訪問記憶體中的資料 二 指標的基本概念 1 定義 變數的位址稱為變...