在電腦科學中,指標( 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...