指標基礎(一)

2021-09-25 22:58:38 字數 1883 閱讀 3750

變數的值:變數在儲存空間中存放的資料

2、指標變數的定義以及初始化

①定義形式型別關鍵字 *指標變數名;定義指標變數時將其初始化為null,指標變數只能指向同一基型別的變數

②定義時同時對其進行初始化:

方法一:

int x;

int *p = &x;

方法二:

int x,*p;

p = &x;

③指標變數不能直接賦值

int *p;

p = 10010;

//這個寫法錯誤,不能直接賦值

int i,*p,*t;

p = &i;

t = p;

//這個做法正確,間接賦值

3、間接定址運算子

①&:獲取變數的位址需要使用的取位址運算子(scanf輸入需要加入取位址符&,因為scanf()函式後面的引數應該傳入的是指標

*:訪問指標變數指向的變數的值的間接定址運算子

*(變數名) //將變數當做位址到相應的位址取值

&(變數名) //獲取變數的位址

*與&互為逆運算

*(&(變數名)) //指的是變數本身

int j;

int *k;

k = &j;//k為指向j這塊變數記憶體的指標

③指標必須指向一塊有意義的記憶體,不要使用未初始化的指標變數

4、按值呼叫與模擬按引呼叫

按值呼叫

#include void fun(int par);//函式宣告

int main()

void fun(int par)

執行結果

arg = 1

par = 1

arg = 1

再看用指標變數作為函式形參

#include void fun(int *par);

int main()

void fun(int *par)

執行結果

arg = 1

par = 1

arg = 2

對比以上兩種形參方式,發現指標變數作函式形參能改變主函式對應的實參變數的值

例如鍵盤中任意輸入兩個整數,程式設計實現這兩個數交換後再重新輸出

第乙個例子

#include void swap(int x,int y)

int main()

void swap(int x,int y)

輸入3,5 結果如下

3,5

在被調函式裡面已經交換了但在主調函式中卻沒有交換

用指標變數作為函式形參的例子

#incldue void swap(int *x,int *y);

int main()

void swap(int *x,int *y)

輸入3,5 結果如下

5,3

這裡用指標變數作為被調函式形參,在主調函式中實參值被改變

編寫乙個函式,計算最高分以及其相應的學生學號

void findmax(int score,long num,int n,int *pmaxscore,long *pmaxnum)

}}

C 基礎 指標,函式指標

變數指標,函式指標 include using namespace std 做函式宣告,函式的實現可以在呼叫的後面,但是宣告必須在呼叫的前面 int add int,int int mutiple int,int int dooperate int a,int b,int opimp int,int...

C語言基礎程式(一) 野指標

野指標 的成因主要有兩種 1 指標變數沒有被初始化。任何指標變數剛被建立時不會自動成為null指標,它的預設值是隨機的,它會亂指一氣。所以,指標變數在建立的同時應當被初始化,要麼將指標設定為null,要麼讓它指向合法的記憶體。例如 char p null char str char malloc 1...

嵌入式LinuxC基礎 指標(一)

1.指標的算術運算 指標 整數,這類表示式的結果型別也是指標。指標 只有當兩個指標都指向同乙個陣列中的元素時,才允許從乙個指標減去另乙個指標。兩個指標相減的結果的型別是有符號的整數型。2.指標的關係運算 前提是他們指向同乙個陣列中的元素。3.間接引用 對於已說明的變數來說,變數名就是變數值的直接引用...