C語言簡明分析指針與引用的具體用法
1、指針
在計(jì)算機(jī)中,數(shù)據(jù)是存放在內(nèi)存單元中的,一般把內(nèi)存中的一個(gè)字節(jié)稱為一個(gè)內(nèi)存單元。為了更方便地訪問這些內(nèi)存單元,可預(yù)先給內(nèi)存中的所有內(nèi)存單元進(jìn)行地址編號,根據(jù)地址編號,可準(zhǔn)確找到其對應(yīng)的內(nèi)存單元。由于每一個(gè)地址編號均對應(yīng)一個(gè)內(nèi)存單元,因此可以形象地說一個(gè)地址編號就指向一個(gè)內(nèi)存單元。C 語言中把地址形象地稱作指針。
主要就是兩個(gè)運(yùn)算符:&和*。 & 表示求地址,*表示求地址中的值,*也可以用來定義指針(int *p表示整型指針);
int a=1; int *p=&a; printf("%d",p); //p就輸出a的地址了
1 錯誤:&a地址只能賦值給指針變量。
int a=11; int p=&a;
2 錯誤,第二行賦值的時(shí)候不用加上*。
int *p,a; *p=&a; //錯誤,指針變量是p而不是*p
3 指針定義了之后一定要使用,不然會報(bào)錯。
4 指針類型要和數(shù)據(jù)類型一致,不同的類型之間不可以使用指針
2、引用
引用引入了對象的一個(gè)同義詞。定義引用的表示方法與定義指針相似,只是用&代替了*。引用(reference)是c++對c語言的重要擴(kuò)充。引用就是某一變量(目標(biāo))的一個(gè)別名,對引用的操作與對變量直接操作完全一樣。其格式為:類型 &引用變量名 = 已定義過的變量名。
引用的特點(diǎn):
①一個(gè)變量可取多個(gè)別名。
②引用必須初始化。
③引用只能在初始化的時(shí)候引用一次 ,不能更改為轉(zhuǎn)而引用其他變量。
例子中,a、b作為n1、n2的引用,
#include<iostream> using namespace std; void Swap(int & a, int & b) { //交換a、b的值 int tmp; tmp = a; a = b; b = tmp; } int main() { int n1 = 100, n2 = 50; Swap(n1, n2); //n1、n2 的值被交換 cout << n1 << " " << n2 << endl; //輸出 50 100 }
定義引用時(shí),可以在前面加 const 關(guān)鍵字,則該引用就成為“常引用”。如:
int n; const int & r = n;
上面的語句定義了常引用 r,其類型是 const int &。
常引用和普通引用的區(qū)別在于:不能通過常引用去修改其引用的內(nèi)容。注意,不是常引用所引用的內(nèi)容不能被修改,只是不能通過常引用去修改而已,但可以用別的辦法修改。例如下面的程序片段:
int n = 100; const int & r = n; r = 200; //編譯出錯,不能通過常引用修改其引用的內(nèi)容 n = 300; //沒問題,n的值變?yōu)?00
到此這篇關(guān)于C語言簡明分析指針與引用的具體用法的文章就介紹到這了,更多相關(guān)C語言指針與引用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言深入分析遞歸函數(shù)的實(shí)現(xiàn)
遞歸(recursive)函數(shù)是“自己調(diào)用自己”的函數(shù),無論是采用直接或間接調(diào)用方式。間接遞歸意味著函數(shù)調(diào)用另一個(gè)函數(shù)(然后可能又調(diào)用第三個(gè)函數(shù)等),最后又調(diào)用第一個(gè)函數(shù)。因?yàn)楹瘮?shù)不可以一直不停地調(diào)用自己,所以遞歸函數(shù)一定具備結(jié)束條件2022-04-04opencv+arduino實(shí)現(xiàn)物體點(diǎn)追蹤效果
這篇文章主要為大家詳細(xì)介紹了opencv+arduino實(shí)現(xiàn)物體點(diǎn)追蹤效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01深入探究協(xié)程在C++中的實(shí)現(xiàn)方式
協(xié)程可以被看作是計(jì)算機(jī)程序中的獨(dú)立功能塊,它們在執(zhí)行過程中能夠暫停和恢復(fù),與傳統(tǒng)的函數(shù)調(diào)用相比,協(xié)程更像是一種輕量級的線程,本文我們將深入探究協(xié)程在C++中的實(shí)現(xiàn)方式,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2023-12-12