C++地址運(yùn)算符相關(guān)內(nèi)容詳解
作為一個(gè)經(jīng)驗(yàn)豐富的編程人員,應(yīng)該對(duì)C++編程語(yǔ)言不會(huì)陌生。它的功能強(qiáng)大,而且應(yīng)用方式廣泛,在開(kāi)發(fā)領(lǐng)域中占據(jù)著重要的地位。我們今天就為大家詳細(xì)介紹一下C++地址運(yùn)算符的相關(guān)操作,讓大家體驗(yàn)其功能的強(qiáng)大。
在C++中,&這個(gè)C++地址運(yùn)算符有兩個(gè)含義,一種含義是取某個(gè)變量或者對(duì)象的地址。這個(gè)地址是指內(nèi)存地址,這個(gè)地址取到之后,可以賦給一個(gè)指針。例如下面這樣
- int a=5;
- int *p=&a;
這就表示,有一個(gè)變量為a,其值為5,然后有一個(gè)指針變量p,它保存了變量a的地址。
但C++中,&還有一個(gè)用途是定義引用常量。引用其實(shí)就相當(dāng)于是一個(gè)變量的別名,從它的功能上說(shuō)與指針很類似,但使用起來(lái)比較簡(jiǎn)便。
我們先來(lái)看如何定義一個(gè)引用
- int a=5;
- int &b=a;
這就表示,有一個(gè)變量為a,其值為5,然后有一個(gè)引用變量b,它引用了變量a。實(shí)際上此時(shí)兩個(gè)變量的操作都會(huì)影響到彼此,因?yàn)樗鼈兯褂玫膬?nèi)存是一樣的。
- int main()
- {
- int a=5;
- int &b=a;
- cout<<&a<<endl;
- cout<<&b<<endl;
- return 0;
- }
那么,引用與指針相比有什么大的區(qū)別呢?依我看,主要是使用起來(lái)比較方便
為了說(shuō)明這個(gè)問(wèn)題,我用下面的C++地址運(yùn)算符的范例做了解釋
- #include <iostream>
- using namespace std;
- class human{
- public:
- void Talk();
- };
- void human::Talk(){
- cout<<"Hello"<<endl;
- }
- int main()
- {
- human h;//創(chuàng)建一個(gè)human對(duì)象
- human *p=&h;//創(chuàng)建一個(gè)指針,指向該human對(duì)象的地址
- p->Talk();//調(diào)用該human對(duì)象的Talk方法
- (*p).Talk();//或者也可以這樣寫(xiě)
- human &hh1=h;//創(chuàng)建一個(gè)引用
- h1.Talk();//可以直接調(diào)用Talk方法
- cout<<"h的地址是:"<<&h<<endl;
- cout<<"p的地址是:"<<p<<endl;
- cout<<"h1的地址是"<<&h1<<endl;
- return 0;
- }
以上就是對(duì)C++地址運(yùn)算符的相關(guān)介紹。
【編輯推薦】