C語言的指標(高階篇章之二)

2021-07-12 08:09:34 字數 1302 閱讀 2552

而今天的主角——指標,則是用於儲存位址,它在c語言使用中和陣列名是緊密的聯絡在一起。

#include int main()

,,};

for(int i=0; i<3; i++)

putchar(10);

}//研究陣列名a的大小

printf("a = %p\n",a);

printf("a + 0 = %p\n",a+0);

printf("a + 1 = %p\t",a+1);

printf("a + 2 = %p\n",a+2);

//研究陣列a的每個元素的大小

printf("a[0] = %p\n",a[0]);

printf("a[1] = %p\t\t",a[1]);

printf("a[1] + 1 = %p\t",a[1]+1);

//研究二維陣列到一維陣列的關係化

printf("*(a+1)+1) = %d\t",*(a+1)+1));

printf("*(*(a+1) + 1) = %d\n",*(*(a+1)+1));

printf("&a[1] +1 = %p\n",&a[1]+1);

return 0;

}

從程式中我們可以總結出:

a //表示是陣列下標為0的那一行的首位址

a+1 //表示是陣列下標1的那一行的首位址[<=>&a[1] ]

a[1] //<=>a[1]+0,也是a[1][0]元素的位址

a[1]+1 //指的也是a[1][1]元素的位址

*(a+1)+1 //指的也是a[1][1]元素的位址

((a+1)+1) //指的是元素a[1][1]值

*( a[1]+1) //指的是元素a[1][1]值

【c】實參是陣列指標,形參是陣列指標

主調函式:

int a[40];

int *p=a;

function(p);

被調函式:

function(int *q)

【d】實參是陣列指標,形參是陣列

主調函式:

int a[40];

int *p=a;

function(p);

被調函式:

function(int a)

C語言的指標(基礎篇章)

記憶體是以位元組為單位進行編址的,記憶體中的每個位元組都對應乙個位址,通過位址才能找到每個位元組。而我們常說的變數,變數的記憶體位址就是變數的指標。切記,指標是有型別位址常量。記憶體的快捷方式 指標定義指標變數的一般形式 type variable 指向資料型別 指標變數名 指標運算的本質是指標中儲...

c語言指標高階(二)

首先這裡強調乙個問題就是假設我現在知道乙個記憶體位址0xaa11 我怎樣將這個位址直接給乙個指標呢?首先這樣是沒有語法錯誤的 確實也是這樣定義的 但是位址我們是不能隨便規定的 這個主要用於程式開發中我們向特定的位址 我們已知的位址 去寫入資料 例如 通過i2c介面傳送到mcu乙個位址資料 unsig...

c語言指標之二級指標示例

二級指標的概念 首先任何值都有位址,一級指標的值雖然是位址,但這個位址做為乙個值亦需要空間來存放,是空間就具有位址,這就是存放位址這一值的空間所具有的位址,二級指標就是為了獲取這個位址,一級指標所關聯的是其值 乙個位址 名下空間裡的資料,這個資料可以是任意型別並做任意用途,但二級指標所關聯的資料只有...