c++語法大全筆記(一)


  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++的一些高級的語法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM