C 中的幾個概念

2021-08-03 00:15:59 字數 2217 閱讀 6231

1.命名空間

關鍵字:namespace

目的:為了解決變數命名衝突的問題,同乙個變數名a在不同的作用域下,含義是不同的。

#includeusing namespace std

namespace aa1

namespace aa2

}

2.c++基本的輸入輸出流

<1>標準輸入流物件cin

在標頭檔案中,指從標準輸入裝置(鍵盤)中輸入。「>>」提取運算子,與cin配合使用,其作用是從輸入裝置(鍵盤)中提取資料送到輸入流cin中。

cin<<2>標準輸出流物件cout 

在 標頭檔案中,指輸出到顯示屏中。「<<」插入運算子,與cout配合使用,其作用是將「<<」右側的插入到輸出的佇列cout中。

cout<3.過載(c++為什麼支援過載?)

過載:在c++中,在同乙個作用域中,函式名相同,而函式引數型別或函式引數個數不同的情況。

在c中,在同一作用域中,函式名唯一;在c++中,在同一作用域中,要求函式簽名唯一。所謂函式簽名,指函式名+引數列表。

由於c++有函式名修飾規則,從而使得c++可以過載。

int f(int x,int y)//會被重新命名為類似_z1fic的形式

int f(int x,double y)//_z2fid

4.c++預設引數

所謂預設引數,就是在宣告函式的某個引數的時候給它指定乙個預設值,在呼叫函式時,當使用預設引數時,就不需要給值。規則:帶預設值的引數必須放在引數列表的最後面。

int add1(int a,int b = 20)//半預設

int add2(int a = 10,int b = 20)//全預設

//呼叫

add1(10);

add1(10,30);

add2();

add2(20,40);

5.指標和引用(概念、使用方法、做引數、做返回值的作用,指標和引用的區別)

區別:

指標:變數的指標是變數的位址,用來存放變數位址的變數就是指標變數。即指標是指向乙個位址的。

int *p11,*p12;//定義指標變數p1,p2

int a = 10;

int b = 20;

p11 = &a;//將a的位址賦給p1

p12 = &b;//將b的位址賦給p2

//指標做函式引數

swap(p11,p12);//交換*p1和*p2

void swap(int *p1,int *p2)

//指標做返回值

int* a(int x,int y)//呼叫它以後返回乙個指向整型資料的指標(位址)。

int a = 10;

int &b = a;//b是a的別名

b = 30;//通過b來改變a,此刻a=30

//引用做函式引數

int i = 3,j = 5;

swap(i,j);

//void swap(int &a,int &b)

//引用做函式返回值

int& f(int a,int b)

返回的是乙個臨時變數,將返回值的位址儲存在暫存器中,接收的時候是接受這個變數的引用,雖然結果正確,但存在問題。在函式呼叫完成以後,棧幀銷毀,如果在呼叫乙個其他函式,這個接收的值就有可能發生變化,產生乙個隨機的值。

結論:1.不要返回乙個臨時變數的引用

2.如果返回物件出了當前函式的作用域依然存在,則最好使用引用返回,這樣比較高效。

區別:

1.引用只能在定義時初始化一次,之後則不能改變使它指向另乙個變數(從一而終);而指標變數的值是可以改變的。

2.引用必須指向有效的變數,而指標可以為空(null)

3.sizeof指標和引用的意義不同,sizeof指標物件:物件位址的大小,sizeof引用物件:所指向變數的大小。

4.指標和引用自增(++)和自減(- -)意義不同。

int a[2] = ;

int* pa = a;

int &b = a[0];

pa++: pa現在指向a[0],pa++就是指向下乙個元素的位址,即a[1]

b++ : b指向a[0]元素的值2,b++則指向a[1]元素的值,即3

5.引用比指標更加安全一些。

LVM中的幾個概念

lvm中的幾個概念 pv physical volume 物理卷在邏輯卷管理系統 最底層,可為整個物理硬碟 或實際物理硬碟上的分割槽。vg volume group 捲組建立在物理卷上,一捲組中至少要包括一物理卷,捲組建立後可動態的新增捲到卷組中,乙個邏輯卷管理系統工程中可有多個捲組。lv logi...

websphere中的幾個概念

什麼是單元 cell 什麼是節點 node node profile 與 server 之間的關係是什麼?答 單元 單元是整個分布式網路中乙個或多個節點的邏輯分組。單元是乙個配置概念,是管理員將節點間邏輯關聯起來的實現方法。管理員根據具體的業務環境,制定對其整體系統整合環境有意義的條件來定義和組織構...

Spring AOP中的幾個概念

aop,即面向切面程式設計,是對oop的一種補充和完善,在oop中由於有大量 的重複導致不利於各個模組的重用,而aop技術利用一種稱為 橫切 的技術,剖解開封裝的物件內部,並將那些影響了多個類的公共行為封裝到乙個可重用模組,並將其命名為 aspect 即切面。所謂 切面 簡單說就是那些與業務無關,卻...