C語言指標

2021-09-24 14:37:45 字數 1490 閱讀 2597

在電腦科學中,指標( pointer )是程式語言中的乙個物件,利用位址,它的值直接指向存在電腦儲存器中另乙個地方的值。由於通過位址能找到所需的變數單元,可以說,位址指向該變數單元。因此,將位址形象化的稱為「指標」。意思是通過它能找到以它為位址的記憶體單元。

char *p=null;  

int *p=null;

float *p=null;

short *p=null;

void *p=null;

......

不同型別的指標裡存放不同型別資料的位址。如int *型別指標裡存放的是int資料型別的資料。

●在32位的機器 上,位址是32個0或者1組成二進位制序列,那位址就得用4個位元組的空間來儲存,所以乙個指標變

量的大小就應該是4個位元組。

●那如果在64位機器上,如果有64個位址線,那乙個指標變數的大小是8個位元組,才能存放乙個位址。

int a=0; 

int *p=&a;

p++;

char b=0;

char *q=&b;

q++;

假如a的位址為0xbfa08844,則p++,也可寫為p=p+1,此時p的位址為0xbfa08848,位址加了4,原因是p裡儲存的是int型別資料,大小為4個位元組。

假如b的位址為0xbfa088b4,則q++,也可寫為q=q+1,此時p的位址為0xbfa088b5,位址加了1,原因是q裡儲存的是char型別資料,大小為1個位元組。

指標變數也是變數,所以指標也需要位址來儲存,因此就需要二級指標來存放指標變數(一級指標)。

int a=20;

int *pa=&a;

int **ppa=&pa;

a的位址存放在pa中,pa的位址存放在ppa中。pa為一級指標,ppa為二級指標。

通過ppa找到pa,然後通過pa找到a,則**ppa=20。

指標陣列,顧名思義就是存放指標的陣列,記住指標陣列是陣列

陣列指標,是指向整個陣列的指標,記住,陣列指標是指標

int (*p)[5]; //陣列指標
二位陣列的傳參就可以用陣列指標來接收。

列如:

void function(int arr[3][5],int row,int col);

void function(int (*arr)[5],int row,int col);

//這兩個傳參的效果的一樣的

C語言指標

指標變數是包含記憶體位址的變數,它指向記憶體中的一塊區域,通過指標的值,可以間接訪問到相應的記憶體單元的資料,並做相應的修改。1 指標的定義和簡單使用 定義乙個指標變數和定義一般的變數類似,只需在變數名前面加乙個 對乙個指標變數賦值可以用取位址符 來獲取到乙個變數的位址,如果要獲得指標指向的記憶體區...

C語言指標

1 定義指標變數void change int n 格式 變數型別 變數名 定義了乙個指標變數p 指標變數只能儲存位址 指標變數p前面的int 指標變數p只能指向int型別的資料 int main void change int n 2 指標與陣列 陣列名其實質是乙個指標,但是它和普通的指標變數還是...

c語言指標

編寫程式,在主函式裡用指標陣列輸入六個字串,再用另乙個函式對這六個字串排序,並在主函式中輸出排好序的字串。include void sort char s,int n char temp for int i 0 ifor int j 0 jif strcmp s j s j 1 0 temp s j...