C語言之指標

2021-09-27 08:22:34 字數 1192 閱讀 7947

**指標

int a;//定義乙個整型變數a,存放整型變數值;

int *p;//定義乙個整型指標(位址)變數p存放整型位址值;

double *p;//定義乙個double型別的指標變數存放double型別的位址;

char*p;//同樣定義乙個char型別的指標變數;

int *p=&a;//等同於int *p;p=&a;初始化,定義乙個整型指標變數p,p儲存的是a的位址;

*p=100;//等同與a=100;解引用(簡接訪問符),通過*號對p指向a的位址a訪問,也就是從p跳到了a;

//*號在指標中有兩個作用:1.定義指標變數,前面有資料型別;2.解引用,在使用過程中,指標變數比普通變數只是多了乙個解引用的功能;

2.二級指標:二級指標也是乙個指標變數;

int *p=&a(指標變數p儲存a的位址);int **pp=&p(指標變數pp儲存p的位址);

*pp=&a;//等同於p=&a;pp指向p的位址,*pp解引用對p訪問,*pp等於p;

**pp=2000;//等同於a=2000;*pp解引用等同於p,p儲存a的位址,**pp再解引用對a進行訪問;

3.指標的大小:在32位平台,x86,指標是4個位元組;

在64位平台,x64,指標8個位元組;

4.在主函式中父函式想呼叫子函式,子函式要想影響父函式的值,子函式內部必須傳指標並且解引用;

例如:寫乙個交換函式交換a,b的值;

void swap_err1(int a,int b)//必須要傳指標

void swap_err2(int *p1,int *p2)//傳指標,但是沒有解引用,交換的只是a,b的位址,並沒有改變a,b的值;

void swap_err3(int *p1,int *p2)

void swap(int *p1,int *p2)//正確的交換函式,傳了指標並且解引用了;

5.空指標和二級指標的應用

#include void  fun(int *p)//不崩潰是因為沒有解引用,子函式的值不能影響到父函式;

//然後再對p解引用即*p=null;此時程式會崩潰;

void fun1(int **pp)//程式崩潰;

int main()

C語言之指標

指標型別的本質分析 1 指標的本質 指標的本質 一種復合的資料型別。下面我將以下面幾個作為例子進行展開分析 a int p b int p c int parvalue 3 d int pfun 分析 所謂的資料型別就是具有某種資料特徵的東東,比如資料型別char,它的資料特徵就是它所佔據的記憶體為...

C語言之指標

指標的概念 什麼是指標?如果用一句話概括的的話那就是,乙個存放記憶體空間位址的變數。指標也是乙個變數,指標存放的內容是乙個位址,該位址指向乙個記憶體空間。指標變數的定義 int p 該變數用來存放乙個空間的位址。p 代表該指標指所指向記憶體空間中的值,切記指標只能存放有效的記憶體空間位址,不能存放其...

C語言之指標

指標是c語言學習乙個重要的概念,它極大的方便了c語言程式設計,用好了指標可以幫助我們程式設計,但是同時指標也是飽受爭議,因為指標的使用很容易出錯,所以在一開始學的時候就弄懂有關指標的知識點是必要的。那麼指標是什麼呢?其實指標也是一種變數,和其他型別的變數一樣,也是儲存資料的,只是在指標變數裡面儲存的...