對c語言中 和 的了解

2021-06-26 17:19:12 字數 655 閱讀 2360

剛剛還是再鑽研資料結構的時候意識到這個小符號帶來的困擾,確實讓我查了幾十個網頁,因為之前沒有學過c++,對&的了解一直在獲得變數位址的這一方面。

剛剛敲了幾行**,才真正看出傳值的蹊蹺,下面是**

#include

#include

void add(int p)

int main()

結果輸出:20 10

#include

#include

void add(int *p)

int main()

結果輸出:2293108 20

#include

#include

void add(int &a)

int main()

結果輸出:20 20

不難看出三者之間的異同,*是c語言中的指標操作,函式引用改變的是指向的記憶體空間,最好理解;

&是c++中的引用概念,本意是為變數設定乙個別名,在傳參的時候也可以修改實參的值(看到某個**上面說這也是c++為了簡化c指標而做出的改變),同時也修改了形參的值;

最後乙個是最簡單的, 改變的只是形參的值而並沒有改變實參的值。

C語言中 和

在c語言中,每個變數都是乙個記憶體位置,並且每個記憶體位置都定義了其位址,可以使用 運算子 進行訪問,該位址表示記憶體中的位址。a指標是乙個變數,其值是另乙個變數的位址,即儲存位置的直接位址。像任何變數或常量一樣,你必須在使用指標儲存任何變數位址之前宣告乙個指標。int ip pointer to ...

C語言中 和 用法

一 基本的用法 1 引數名以 作為字首則結果將被擴充套件為由實際引數的帶引號的字串。如 12 3456 78 define dprint expr printf expr d n expr intmain 上面的例子會列印出 a b 2 2 預處理器運算子 為巨集提供了一種連線實際引數的手段。如果替...

c語言中「 」和「 」區別

乙個豎槓 表示運算的或 二個豎槓 表示邏輯的或 c語言的位運算 取反,0取反是1,1取反是0 是左移,比如1 右移,類似左移,數值大小除以2的n次方 按位與,1與任意數等於任意數本身,0與任意數等於0,即1 x x,0 x 0 按位或,x y中只要有乙個1則結果為1 按位異或,x y相等則為0,不等...