指標的使用

2022-08-26 01:21:09 字數 1251 閱讀 8380

指標的應用場景

1.交換兩個變數

2.函式返回多個值,某些值就只能通過指標返回

傳入的引數實際上是需要儲存帶回的結果的變數

3.函式返回運算的狀態,結果通過指標返回

傳入函式的數組成了什麼?

函式引數表中的陣列實際上是指標

sizeof(a)=sizeof(int *)

但是可以用陣列的運算子進行運算

陣列引數

以下四種函式原型是等價的:

int sum(int *ar, int n)

int  sum(int *,int)

int sum(int ar, int n)

int sum(int ,int)

陣列變數是特殊的指標

陣列變數本身表達位址,所以

int a[10]; int *p=a;

但是陣列的單元表達的是變數,需要用&取位址

a==&a[0]

運算子可以對陣列做也可以對指標做:

p[0]<==>a[0]

*運算子可以對指標做,也可以對陣列做

*a=25

陣列變數是const的指標,所以不能被賦值

int a -->int * const a

指標與const

指標是const 表示一旦得到某個變數的位址,不能在指向其他的變數

int * const q = &i ;

* q =;26;

q++;

表示不能通過這個指標去修改那個變數(並不能使得那個變數成為const)

const int * p= &i;

*p = 26;error

i = 26;ok

p=&j ;ok

轉換

1.總是可以把乙個非const的值轉換成const的

const陣列

const int a=

陣列變數已經是const的指標了,這裡的const表明陣列的每個單元都是const int

所以必須通過初始化進行賦值

保護陣列值

因為把陣列傳入函式時傳遞的是位址,所以函式內部可以修改陣列的值

為了保護陣列不被函式破壞,可以設定引數為const

int sum (const int a, int length);

指標的使用

正如拿著名片可以找到某個人一樣,通過指標可以訪問其指向的某塊記憶體區域。為此,c語言引入了間接引用的概念,這需要使用運算子 1.運算子 的作用有兩個 一,宣告 宣告某個型別的指標變數 二,間接引用,通過指標訪問其指向的記憶體區域。double num 3 double pnum pnum 對以上 說...

指標的使用

指標的使用 1.注意 一定要在對指標應用解除應用操作符 之前,將指標初始化為乙個確定的位址。例子 include int main int a int p p 10 正確使用方法 p a p 10 c 中還可以使用 new來給指標確定位址。例子 include int main int a 4 ne...

this指標的使用

this指標 以下 中定義了三個物件a,b,c.因此有三個同樣空間大小分別存放三個物件的資料成員。但是三個物件都同樣呼叫了calcircle 函式.當不同物件的成員函式引用資料成員時,如何保證引用的是指定物件的資料成員呢?在每乙個成員函式中都包含乙個特殊的指標,稱為this指標,它是指向本類物件的指...