目錄
- 一:初級知識
- 1.輸入輸出
- 2.用const定義常變數
- 3.函式定義和宣告
- 4.函式的多載
- 5.函式模板
- 6.有默認引數的函式
- 7.變數的參考
- 8.變數的參考作為函式引數
??c++是一種中級語言,是c的擴充,是一種面向物件的程式設計語言,可以運行到多個平臺,這里直接講語法,
??基礎c++模板:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, world!" << endl;
return 0;
}
一:初級知識
1.輸入輸出
??標準輸入輸出流cout和cin,分別代表輸入流物件和輸出流物件,在頭檔案iostream中定義,鍵盤和顯示幕是計算機的標準輸入輸出設備,標準流是直接不需要打開檔案就可以操作的流式檔案,
??輸出:cout和輸出運算子<<配合使用,<<作為輸出資訊的"插入運算子",可以輸出多個輸出項,把內容依次插入到輸出流cout中,不需要型別判斷,
??輸入:cin和輸入運算子>>配合使用,>>作為輸入資訊"提取運算子",可以輸入多個輸出項,從輸入設備鍵盤提取資料到cin中,
??endl(end of line)代表回車換行操作,
?? c++允許對變數的宣告放在程式的任何位置(但必須在使用該變數之前),
2.用const定義常變數
??c語言的#define只是預編譯時進行的字符置換,不占用記憶體單元,而c++中用const定義常變數,具有變數的屬性,有資料型別,占用存盤單元,可以用地址指向它,在程式運行程序中的值是固定的,
3.函式定義和宣告
??在c++中,如果函式呼叫的位置在函式定義之前,則要求在函式呼叫之前必須對所呼叫的函式作函式原型宣告,一般形式是:
# 函式型別 函式名(引數表);例如:
int max(int x,int y,int z);
int max(int,int,int);
在編譯時只檢查引數型別,不檢查引數名,
4.函式的多載
??c++允許在同一作用域中用同一函式名定義多個函式,這些函式的引數個數和引數型別不相同,用來實作不同的功能,,這就是函式的多載,即一個函式名多用,
??下面是一個例子:
# 第一個函式
int a(int a,int b){}
# 第二個函式
float a(float a,float b){}
# 第三個函式
long a(long a,long b){}
??這里要注意的是,引數的個數和型別至少有一個不同,回傳值可以相同也可以不同,但不允許引數個數和型別相同而只有回傳值不同,
5.函式模板
??這個函式模板就是建立一個通用函式,這個函式的函式型別和形參型別不具體指定,用一個虛擬的型別代表,在呼叫函式時系統會根據實參的型別來取代模板中的虛擬型別,實作了不同函式的功能,定義模板的一般形式為:
# template <typename T1,typename T2,typename T3> 或者:
# template <class T1,class T2,class T3>
??下面是一個例子:
template <typename T>
T show(T a,T b){}
?? 使用函式模板比函式多載更方便,更簡單,但是只適合函式的引數個數相同而型別不同,且函式體相同的情況,
6.有默認引數的函式
??c++在函式呼叫時給形參一個默認值,就減少了重復,實參個數和形參個數不需要相同,但是默認引數要放在形參串列中的最右端,否則可能就會被覆寫,或者引數不夠而報錯,
??要注意的是必須在函式呼叫之前在函式定義(定義在呼叫前)或者函式宣告(定義在呼叫后)進行給出默認值,而且定義和宣告都給默認值的情況下,取宣告的值,因此最好只在函式宣告時指定默認值,
?? 一個函式不能既作為多載函式,又作為有默認引數的函式,會出現二義性,
7.變數的參考
??在c++中,變數的參考就是變數的別名,如下:
int a;
int &b = a; #宣告b是一個整型變數的參考,初始值為a
??這里的&是"參考宣告符",并不代表地址,在宣告一個參考時,必須同時進行初始化,代表哪一個變數,
??在建立參考時只有宣告,沒有定義,
??參考的注意事項:
??(1)參考必須與某一種型別的資料相聯系,
??(2)參考與其所代表的變數共享同一記憶體空間,
??(3)區分&a是宣告參考變數還是取地址,就看前面有沒有型別符,
??(4)可以給一個變數宣告多個參考,
??(5)參考在初始化后不能再被重新宣告為另一個變數的別名,
8.變數的參考作為函式引數
??c++之所以增加"參考",是為了利用它作為函式引數,是為了讓函式的資料傳遞更方便,函式的引數傳遞只要有以下兩種情況,
??將變數的參考作為形參:
??c++把變數的參考作為函式形參,就可以指向同一地址單元,對參考型形參的初始化是在函式呼叫時通過虛實結合實作的,
??參考和使用指標變數做函式形參的區別:
??使用參考不必使用指標變數,就不需要另外開辟記憶體空間,呼叫時實參不必加&,系統直接傳的是實參的地址,也不必使用指標運算子*,
?? 參考細節:
??(1)不能建立void的參考,
??(2)不能建立參考的陣列,
??(3)可以將變數的參考的地址賦給一個指標,此時指標指向的是原來的變數,但是不能直接建立指向參考型別的指標變數,
int a = 2;
int &b = a;
int *p = a; #p相當于a變數的地址
??(4)可以建立指標變數的參考
int i = 3;
int *b = &a;
int* &pt= b #pt相當于b
??(5)可以用const對參考加以限定,不允許改變參考的值
int i = 3;
const int &a = i; #宣告常參考,不允許改變i的值
??(6)可以用常量或運算式對參考進行初始化,但此時必須用const做宣告
int i = 3;
const &a = i + 2;
上面的const &a = i + 2;陳述句相當于:
int temp = i + 2; #臨時變數在內部實作,用戶不能訪問
const int &a = temp;
也可以用不同型別的變數進行初始化:
double d = 3.252;
const int &a = d;
相當于:
int temp = d;
const int &a = temp;
此時a的值為3.
上面是c++的基礎,之后的文章會向大家介紹c++的一些高級的語法,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/93400.html
標籤:C++
上一篇:一個有趣的C語言問題
下一篇:CSAPP:位操作實作基本運算
