引用與指標的區別

2021-08-14 11:19:18 字數 672 閱讀 9652

1.引用訪問的時候一般為直接訪問,指標通過得到不同的位址來間接訪問不同的變數,*是解析位址的作用

2.引用因為不分配自己的記憶體空間,因此可以通俗理解為給變數起別名,

當&出現在等號左邊時,是引用乙個變數,它的位址和值與引用的變數相同,進行賦值操作時,等同於改變引用的變數的位址和值

當&出現在等號右邊時,是取乙個變數的位址(指標變數的位址中存放的為指標的位址,而值中則存放的時指標所指向的位址,通過*來解析這個位址來指向變數)賦值給指標的值

用記憶體中的儲存形式更直觀的理解

3.引用一經初始化,不能再引用新的變數,指標在生命週期內可以指向不同的變數

4.值傳遞,引用傳遞,指標傳遞

值傳遞:值傳遞中,因為形參無法影響到實參的改變,因此當實參初始化形參的時候(即形參給變數初始化,實參依舊可以給變數進行初始化)要分配新的空間,將實參拷貝到形參中去

引用傳遞:引用傳遞中,形參可以影響到實參的改變,形參若已經給變數初始化,則實參無法再給變數進行初始化操作

指標傳遞:實際上與值傳遞類似,通過位址的傳遞來解析新的位址從而指向新的變數,因此當實參初始化形參的時候與值傳遞相似,只是在分配空間不同而已,在32位系統中分配4個位元組的空間,64位系統中分配8個位元組的空間

引用與指標的區別

1.初始化要求不同。引用在建立的同時必須初始化,而指標在定義的時候不必初始化,可以在定義後面的任何地方重新賦值 2.可修改性不同。引用一旦被初始化,就不能被另乙個物件引用了,而指標在任何時候都可以指向另乙個物件 3.不存在null引用。引用不能使用指向空值的引用,必須指向某物件 而指標可以是null...

指標與引用的區別

指標與引用看上去完全不同 指標用操作符 和 引用使用操作符 但是它們似乎有相同的功能。指標與引用都是讓你間接引用其他物件。你如何決定在什麼時候使用指標,在什麼時候使用引用呢?首先,要認識到在任何情況下都不能使用指向空值的引用。乙個引用必須總是指向某些物件。因此如果你使用乙個變數並讓它指向乙個物件,但...

指標與引用的區別

指標與引用看上去完全不同 指標用操作符 和 引用使用操作符 但是它們似乎有相同的功能。指標與引用都是讓你間接引用其他物件。你如何決定在什麼時候使用指標,在什麼時候使用引用呢?首先,要認識到在任何情況下都不能用指向空值的引用。乙個引用必須總是指向某些物件。因此如果你使用乙個變數並讓它指向乙個物件,但是...