學習總結1(c c 的不同)

2021-08-03 12:00:00 字數 2267 閱讀 5409

1.c++的區域性變數在呼叫前宣告即可

c的區域性變數需要在函式開始宣告

tips:區域性變數的作用域是它的母括號

2.關鍵字namespace的使用

在c++中我們經常會碰到"using namespace"等字元,namespace就是命名空間,而using 屬於宣告;

1.1  命名空間的概念

c++中採用單一的全域性變數的命名空間,如果在乙個空間中,兩個變數或函式的名字一樣,編譯的時候就會

衝突。命名空間就是為了解決c++中函式變數的命名衝突所採取的一種措施,能夠解決多模組協同開發出現

變數函式命名的衝突問題。

在這裡面可以把命名空間理解成資料夾,如果你在hel1這個資料夾中編輯兩個hello.cpp肯定會出問題,但是如果

乙個在hel1,乙個在hel2這個資料夾中p,這個就不會出現衝突。

命名空間的必要性: 當程式比較大的時候,需要多人合作,命名空間就非常必要。

2  命名空間的定義

命名空間用namespace定義,格式如下:

namespace  命名空間名

例:#include  

using namespace std;     

namespace nsa

必要說明:

1) 內聯函式不能含有迴圈語句,swtich語句

2) 內聯函式必須在呼叫之前宣告和定義;

3)內聯函式不能指定丟擲異常型別;

4)inline只是修飾函式向編譯器提出內聯請求,做不作為內聯函式由編譯器決定;

#include

using namespace std;

inline  int max(int,int);

int main()

int temp=a[0];

for(i=0; i<10; i++)

cout<<"in 10 members is max :"<=y>x:y;

}4. 函式的過載

c中,每個函式都必須有唯一的乙個名字,這個就必須記住每乙個函式的名字。

例如經常所見的求最大值的函式,資料型別不同,函式名不能相同。

int max1(int ,int);

int max2(int ,int, int);

double  max3(double, double);

c++中允許同名函式存在,但函式的引數個數必須不同:即形參個數不同,或形參

個數相同,但引數型別有所不同。----這就是過載。

#include

using namespace std;

int max(int,int);

double max(double,double);

int max(int,int,int);

int main()

double max(double x,double y)

int max(int x,int y,int z)

5. 帶預設值的函式

函式呼叫時,形參值是由實引數決定,形參實參必須相同。

c++還提供一種方法,為形參設定乙個預設值,即形參不從實參取值。

5.1 函式的宣告

預設值在函式宣告中提供,但當有宣告又有定義時,定義中不允許有預設值。

如果函式只有定義,則預設值可以出現在函式定義中。

#include  

using namespace std;

void point(int x,int y=0, int z=0)

5.2 帶預設值的形參順序規定

在函式中有多個預設引數,則形參從最右邊依次向左設定。當呼叫函式時,只能向左匹配引數。

錯誤的表示:

void  point(int=0,int, int=0);

void point(int=0,int=0,int);

呼叫時:

point(x): ok

point(x,y);ok

point(x,y,z);ok

point(); error

point(x, , z); error

5.3 預設引數與函式過載

使用帶預設值的函式可以將一些簡單的函式合併為乙個函式。但是如果乙個函式不能既作為過載函式,

又作為帶預設值的函式。會出現二義性,系統無法執行。

例:point(int x,int y);

point(int x,int y=0, int z=0);

point(x,y);

5.4  預設值的限定

預設值:可以是全域性變數,全域性常量,也可以作為乙個函式表示式。預設值不能是區域性變數。

1 C C 的一些基本介紹

1 資料型別 1 1 為什麼要有資料型別這個東西?因為我們在程式設計的過程中可能需要對於日常的事物進行量的表達,從而使計算 邏輯操作更為方便。比如 人數 int,10名 時間 double,0.5分鐘 檔名 string,test.txt 對於人數,我們可以進行增量操作,時間可以換算成秒,檔名可以進...

程式設計面試題 1 C C 區域性字串變數

問題 include char getmemory void int main char str null str getmemory cout 解答 這段程式輸出是亂碼.但是如果把char p hello world 改成 char p hello world 就能輸出正確了.一般在c中我們習慣於...

專案1 C C 語言中函式引數傳遞的三種方式

1 傳值 include void myswap int,int int main void myswap int x,int y 輸出結果為 2 傳位址 include void myswap int int int main void myswap int p1,int p2 輸出結果為 3 引...