指標的定義 初始化 解引用

2021-08-18 01:17:57 字數 1230 閱讀 4398

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 ...