人老了就是會糊塗,記錄一下c/c++中傳指標和引用 的區別,免得再去找來找去
解析:上述的swap函式是將a和b的位址的副本傳進去了,然後再在swap函式中,對a和b的值進行了交換,所以影響了外面main函式中的a和b。如果單純的傳入a和b值的副本,那麼其影響範圍只限於swap函式內,斷不可影響到main函式中去。
解析:上述是典型的c++的引用的用法,在swap函式中,swap(int &a,int &b),新增&是給實參新增乙個別名,即它們指的是同乙個值,在main函式中使用的swap(a,b)中的a和b,對於a和b來說分別是a 和b的別名,所以對a和b操作就是對a和b操作,故而能夠進行交換。
小結
傳指標是c的典型用法,引用是c++的用法,個人而言,指標還是用著更加好理解一點點,傳指標就是將位址副本傳進去,然後在函式裡面對位址代表的值進行操作,倘若僅僅只是對位址操作而不對位址所代表的值操作,那麼也是無法影響到外面的值的,這一點需要引起足夠的重視。
傳指標和傳指標引用的區別 指標和引用的區別(本質)
指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值...
傳指標和傳指標引用的區別 指標和引用的區別(本質)
指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值...
傳指標和傳指標引用的區別 指標和引用的區別(本質)
指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值...