變數的值:變數在儲存空間中存放的資料
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.間接引用 對於已說明的變數來說,變數名就是變數值的直接引用...