首頁  >  文章  >  後端開發  >  C++複習重點總結(一)

C++複習重點總結(一)

黄舟
黄舟原創
2017-01-16 11:16:111108瀏覽

C++對C語言的加強-型別加強

1. register 關鍵字增強

register關鍵字 請求編譯器讓變數直接放在暫存器裡面,速度快。

在c語言中 register修飾的變數 不能取位址;在C++中可以取位址。

2. 變數偵測增強

在C語言中,重複定義多個同名的全域變數是合法的, 在C++中,不允許定義多個同名的全域變數。

3. C++中所有的變數和函數都必須有型別

在C語言中

int f( ); 表示傳回值為int,接受任意參數的函式

int f(void); 表示傳回值為int,接受任意參數的函式

int f(void); 表示傳回值為int的無參函數

在C++中

int f( ); 和int f(void)具有相同的意義,都表示傳回值為int的無參函數

4. 三目運算子功能增強

範例:a
區別:C語言回傳變數的值;C++語言是傳回變數本身

C語言中的三目運算子回傳的是變數值,不能作為左本身

C語言中的三目運算子回傳的是變數值,不能作為左值使用

C++中的三目運算子可直接傳回變數本身,因此可以出現在程式的任何地方

注意:三目運算子可能傳回的值中如果有一個是常數值,則不能作為左值使用(a
C語言如何支援類似C++的特性呢?

====>當左值的條件:要有記憶體空間;C++編譯器幫助程式設計師取了一個位址而已

1.const 限定符認識

作用:把一個物件轉換成一個常數,只讀。


int main()
{
const int a;// 1 第1个第2个意思一样 代表一个常整形数
int const b;// 2
const int *c; // 3 第3个 c是一个指向常整形数的指针(所指向的内存数据不能被修改,但是本身可以修改)
int * const d; //4 第4个 d 常指针(指针变量不能被修改,但是它所指向内存空间可以被修改)
const int * const e ; //5 第5个 e一个指向常整形的常指针(指针和它所指向的内存空间,均不能被修改)
return 0;
}

範例:
const int bufSize=512;bufSize初始化之后就无法进行修改了。
1)在C++中,const符号表原理:存储方式是符号表即key value
key value
bufSize 512

2. C++編譯器對const常數的處理原理:當常數聲明時,是符號表放入常數;使用常數時直接以符號表中的值取代。

結論:C語言與C++中的const變量區別

C語言中const變量是只讀變量,有自己的存儲空間

C++中的const常數

可能分配存儲空間,也可能不分配存儲空間

當const常數為全局,並且需要在其它文件中使用

當使用&操作符取const常數的地址

2)const 與#define異同之處

相同:都可以作為常數使用


:const常數是由編譯器處理的,提供類型檢測和作用域檢查,巨集定義由預處理器處理,單純的文字替換。

🎜🎜以上就是C++複習要點總結(一)的內容,更多相關內容請關注PHP中文網(www.php.cn)! 🎜🎜🎜🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn