取址符的作用

2021-08-01 07:32:02 字數 972 閱讀 5583

一 

int a;

int b = &a;

a、b指向同乙個記憶體位址,對a的操作等同於對b的操作。

int a; 

int *b = &a; 

b中儲存的是a的位址。對(*b)的任何操作相當於對a的操作

void exchg1(int x, int y) 

void exchg2(int &x, int &y)

void exchg3(int *x, int *y)

void main()

這裡exchg1函式被呼叫的時候,並沒有成功交換a跟b的資料。為何呢。

int a=4,b=6;

exchg1 (a,b) ;   //這裡本質上發生的是:exchg1 (intx=a,int y=b) ;x跟y是函式定義裡面的形參,也就是說這裡只是把實參a跟b的值賦予了x,y這2個形參變數。接下來,函式裡發生的值互換只換掉了x跟y的值,而實參a跟b沒有影響。

再看exchg2 (a,b);   //再看本質exchg2 (int &x=a,int &y=b);這裡x跟y都是a,b的引用,操作x跟y交換就等於a跟b交換,自然,呼叫exchg2 可以成功交換a跟b

exchg3(&a,&b) ;   //exchg3(int *x=&a,int *y=&b);   x跟y2個形參是a跟b的指標,也就是實參資料存放的位址。然後函式裡交換了x跟y指向的資料,也就是實參a跟b,所以,交換也是成功的。

**執行的結果,exchg1沒有交換a,b值;exchg2交換了a,b值,到了exchg,a,b的值似乎沒有交換,仍舊是a為4,b為6,剛開始以為**有問題,後來設定了斷點之後,發現**執行到exchg3(&a,&b)時,a=6,b=4了,所以**執行結果和初始值一樣的話,說明已經交換了a,b的值,至此說明**是沒有任何問題的。

PHP取位址符 引用符,引址符

php的引用就是在變數或者函式 物件等前面加上 符號。在php 中引用的意思是 不同的名字訪問同乙個變數內容。與c語言中的指標是有差別的,c語言中的指標裡面儲存的是變數的內容在記憶體中存放的位址。變數的引用 php 的引用允許你用兩個變數來指向同乙個內容。a abc b a echo a 這裡輸出 ...

C語言 取址符 定址符 六

宣告變數 int i num int ii num 3 float f num char c pointer cc pointer 一 基本概念 用來儲存位址的變數 二 一元運算子 乙個變數的位址可以看作是在記憶體中的位置,值以十六進製制表示 0x7fff5fbff7ac int point 100...

C中指標符 和取址符

學習了c語言之後,關於指標部分看了無數遍,有時候明明覺得自己看懂了,指標就是位址,但是總是在看 時候糊里糊塗的搞不明白,最近又關於指標強化了一把。大部分情況下對於程式中指標糊塗是因為不明白指標符 有兩個作用 第一,作為識別符號,定義變數為指標,如int p 只是說明變數p是指標變數,而沒有實際意義。...