正如拿著名片可以找到某個人一樣,通過指標可以訪問其指向的某塊記憶體區域。為此,c語言引入了間接引用的概念,這需要使用運算子*。
1.*運算子
*的作用有兩個:一,宣告:宣告某個型別的指標變數; 二,間接引用,通過指標訪問其指向的記憶體區域。
double num=3;
double *pnum;
pnum=#
對以上**說明如下:
num:
double 型別的變數
pnum:
指向double型別的指標變數,其值是num的值
&num:
返回變數num的位址,與pnum等價
*pnum:pnum所指向的變數,間接訪問方式,與num等價
&(*pnum):與&num等價(即pnum)等價,num的位址。
*(&num):
與*pnum(即num)等價,變數num
1.2 指標的型別和指標所指向的型別
原則上,指標的型別和指標所指向的型別應該是相同的,但是也有例外。下面我們將區分一下二者的不同,在此之前,我們先區分一下兩者的概念:所謂的指標的型別,指的是宣告指標變數是位於變數名前的「型別*」;而所謂的指標所指向的型別,指的是為指標初始化或者賦值的變數型別。
1.2.1 同型別指標的賦值
同型別指標的賦值是最常見的一種情況。例如:pn1,pn2是兩個相同型別的指標,執行「pn1=pn2」這樣乙個賦值操作後,pn1,pn2就指向了同樣的位址,也就是說兩個指標指向同乙個記憶體單元,對*pn2的任何改動都會影響到pn1的值,反之亦然。
1.2.2 指標的型別和指標所指向的型別不同時
(1)指標記憶體的位元組數大於指標型別佔據的位元組數。
double dnum;
int *pi = &dnum;
(2)指向記憶體的位元組數小於指標型別的位元組數。
指標的使用
指標的使用 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指標,它是指向本類物件的指...
指標的使用
指標的應用場景 1.交換兩個變數 2.函式返回多個值,某些值就只能通過指標返回 傳入的引數實際上是需要儲存帶回的結果的變數 3.函式返回運算的狀態,結果通過指標返回 傳入函式的數組成了什麼?函式引數表中的陣列實際上是指標 sizeof a sizeof int 但是可以用陣列的運算子進行運算 陣列引...