C 中 和 的區別

2021-10-05 20:38:28 字數 693 閱讀 6949

在c語音中*代表指標,&代表位址

在c++中*代表指標,而&代表引用,而*&代表指標引用

複習一下,指標是乙個變數(它的值是乙個位址),而指標引用指的是這個變數的引用;在c++中如果引數不是引用的話會呼叫引數物件的拷貝建構函式,所以如果有需求想改變指標所指的物件(換句話說,就是要改變指標裡面存的位址),就要使用指標引用,在網上看到大佬的**,簡單明瞭,如下

#include using namespace std;

struct point ;

/*指標*/

void test1(point *p)

/*指標引用*/

void test2(point *&p)

int main(int argc, char const *ar**)

執行結果

yishurufa@ubuntu:~/works/program$ vim test.cpp 

yishurufa@ubuntu:~/works/program$ g++ test.cpp

yishurufa@ubuntu:~/works/program$ ./a.out

p1->x = 1; p2->x = 1

p1->x = 1; p2->x = 100

C 中 和 的區別

c 中的引用相當於給變數多起了乙個名字,很多人認為指標型別的引用是沒有必要的,認為指標本身就指向一塊位址,我們可以通過位址來傳值,但是是不是沒有必要用引用呢?下面的 中 qaction action null 宣告乙個qaction物件的指標,且讓它指向空ret ret makeaction act...

C 中 和 運算的區別

1 運算子 用於通過物件名和成員運算子訪問物件中的成員 這種引用方式的一般形式為 物件名.成員名 如例子 stud1.display 例子中stud1為物件名,而display 為物件stud1的成員函式,通過這種方式,可以實現對類中函式的呼叫,在呼叫的時候要注意成員函式是public privat...

c 中「 」和Equals的區別

一 值型別的比較 對於值型別來說 兩者比較的都是 內容 是否相同,即值 是否一樣,很顯然此時兩者是劃等號的。int i 9 int j 9 console.writeline i j i j true console.writeline i.equals j i.equals j true 二 引用...