国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

關于c++的引用變量與命名空間

2019-11-06 08:17:07
字體:
來源:轉載
供稿:網友

一、c++的引用變量

初學c++便接觸到了引用變量,定義類型為整型時:

int a;int &b=a;表示將b定義為一個引用變量,引用了a的數值,同時b與a的地址值相同,如果改變b的數值,a,b的數值也會改變,但是作為引用變量b的地址值不會改變,同時引用變量與指針有著相似性,但是卻是不同的,有著不同的特性。以下程序作為對比分析:

#include<iostream>using namespace std;int main(){	int a,b;	int &c=a;	int *q;	q=&a;	a=1;	b=2;	cout<<c<<endl;	cout<<*q<<endl;	cout<<&c<<endl;	cout<<q<<endl;	q=&b;	c=b;//將b=2賦 給c   	cout<<a<<endl;//a變為2 	cout<<c<<endl;	cout<<*q<<endl;	cout<<&c<<endl;//引用變量的地址不會改變,仍為a的原地址 	cout<<q<<endl;	return 0;	} 

運行結果如圖。由此可見c,*q是一個具體的數值,而&c,q是地址值,當使q指向b后,q的地址變為b的地址,a的值不會改變,令c引用b后,a,c的值都發生變化,但c的地址卻依舊是a的地址。這便是引用變量的相關內容。

二 、關于命名空間

c++中考慮到可能會有重名的變量,函數等,設置了命名空間的概念,例如,在c++中當使用<iostream.h>時,相當于在c中調用庫函數,使用的是全局命名空間,也就是早期的c++實現;當使用<iostream>的時候,該頭文件沒有定義全局命名空間,必須使用namespace std;這樣才能正確使用cout。

這便是using namespace std的用處,std指的是標準庫相關的標識符,C++標準程序庫中的所有標識符都被定義于一個名為std的namespace中。

同時,namespace也可以由用戶自定義,以下代碼用來說明namespace的意義:

//DISPLAYNamespaceDemonstration#include <iostream>using namespace std ;namespace savitch1 {    void greeting();}namespace savitch2 {    void greeting();}void big_greeting();int main(){    {        using namespace savitch2 ;        //使用savictch2、std、全局三個命名空間        greeting();    }    {        using namespace savitch1 ;        //使用savitch1、std、全局三個命名空間        greeting();    }    big_greeting();    //使用了std和全局兩個命名空間         return 0 ;}namespace savitch1 {    void greeting()    {        cout<<"Hellofromnamespacesavitch1./n" ;    }}namespace savitch2 {    void greeting()    {        cout<<"Greetingsfromnamespacesavitch2./n" ;    }}void big_greeting(){    cout<<"ABigGlobalHello!/n" ;}同時也可改為如下用法:

//DISPLAYNamespaceDemonstration#include <iostream>using namespace std ;namespace savitch1 {    void greeting();}namespace savitch2 {    void greeting();}void big_greeting();int main(){    {                //使用savictch2、std、全局三個命名空間        savitch2::greeting();    }    {                //使用savitch1、std、全局三個命名空間        savitch1::greeting();    }    big_greeting();    //使用了std和全局兩個命名空間         return 0 ;}namespace savitch1 {    void greeting()    {        cout<<"Hellofromnamespacesavitch1./n" ;    }}namespace savitch2 {    void greeting()    {        cout<<"Greetingsfromnamespacesavitch2./n" ;    }}void big_greeting(){    cout<<"ABigGlobalHello!/n" ;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 交口县| 怀柔区| 溧阳市| 建始县| 绵阳市| 嘉禾县| 池州市| 徐水县| 甘孜| 蕲春县| 治多县| 自贡市| 巴林左旗| 三台县| 文登市| 湘潭市| 巩义市| 老河口市| 达拉特旗| 财经| 德清县| 抚顺市| 巫山县| 瓦房店市| 琼中| 广昌县| 紫阳县| 鄂伦春自治旗| 邯郸县| 邹城市| 叶城县| 开原市| 嘉鱼县| 景德镇市| 通榆县| 金阳县| 泸州市| 苍溪县| 通海县| 湟中县| 冀州市|