1.指標的定義和初始化
(1)&a: 取位址符(單目運算子)
a&b: 按位與(雙目運算子)
*的三種用法:
(1) 乘法:3*4=12
(2) int *p=&a; //定義指標變數
(3) *p=100; //解引用
(2)int *p=&a; //定義整型指標變數(p)儲存整型位址值
*p=100; //間接訪問符(解引用)通過p間接訪問變數a的值並把a的值賦為100
2.解引用
解引用是指標變數與普通變數的唯一不同
(1)通過乙個簡單的例子,了解指標:
int a,b,c,d;
int *p1=&a; //定義乙個指標變數p1指向a
int *p2=&b; //定義乙個指標變數p2指向a
*p1=100; //解引用,把a的值賦為100
*p2=200; //解引用,把b的值賦為200
p1=&c; //p1指向c
p2=&d; //p2指向d
*p1=300; //解引用,把c的值賦為300
*p2=400; //解引用,把d的值賦為400
p1=&c; //p1指向c
p2=&a; //p2指向a
p1=&d; //p1指向d
*p2=1000; //解引用,把a的值賦為1000
*p1=2000; //解引用,把d的值賦為1000
(2)二級指標的解引用:
int **pp=&p;
*pp=&a; //p=&a,*pp就是p(解引用)
*pp=1000; //a=1000
(3)*指標變數名,則間接訪問到(跳到、解引用)指標所指向的變數
4.指標的應用
呼叫函式,實現交換兩個數的值。
//子函式的改變要想修改父函式的值,
//必須要1、傳指標,2、解引用
void swap_err1(int a,int b)
void swap_err2(int *p1,int *p2)//有傳指標,但是沒有解引用
void swap_err3(int *p1,int *p2)
void swap(int *p1,int *p2)
int main()//呼叫函式,父函式
指標的定義和初始化
每個指標都有乙個與之關聯的資料型別,該資料型別決定了指標所有指向的物件的型別。例如,乙個int 型指標只能指向 int 型物件。1.指標變數的定義 c 語言使用 號把乙個識別符號宣告為指標 vector pvec int p1,p2 string pstring 2.另一種宣告指標的風格 在定義指標...
c 的成員列表初始化解析
首先來看一段 這是某個類的定義 簡單定義 class queue 接著初始化類建構函式 queue queue int qs 上述 無法正常執行,原因在於qszie這一點,他是常量,只能初始化而不能賦值,原因如下 正常的呼叫建構函式的內部順序是 呼叫建構函式 建立物件 首先給類的成員變數分配記憶體,...
指標的初始化
指標代表的是記憶體單元的編號或位址,通過指標就可以找到對應的記憶體單元。對指標進行初始化或賦值的實質是將乙個位址或同型別 或相相容的型別 的指標賦給它,而不管這個位址是怎麼取得的。1 指標的初始化 指標初始化時,的右運算元必須為記憶體中資料的位址,不可以是變數,也不可以直接用整型位址值 但是int ...