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

來源:互聯網
上載者:User
C++對C語言的加強——類型加強

1. register 關鍵字增強

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

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

2. 變數檢測增強

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

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

在C語言中

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

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

在C++中

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

4. 三目運算子功能增強

例子:a< b ? a : b )= 30;

區別:C語言返回變數的值; C++語言是返回變數本身

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

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

注意:三目運算子可能返回的值中如果有一個是常量值,則不能作為左值使用 (a < b ? 1 :b )= 30;

C語言如何支援類似C++的特性呢?

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

1.const 限定符認識

作用:把一個對象轉化成一個常量,唯讀。

int main(){const int a;// 1 第1個第2個意思一樣 代表一個常整形數int const b;// 2const 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 valuekey valuebufSize 512

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

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

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

C++中的const常量

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

當const常量為全域,並且需要在其它檔案中使用

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

2)const 與 #define異同之處

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

異:const常量是由編譯器處理的,提供類型檢測和範圍檢查,宏定義由前置處理器處理,單純的文本替換。

以上就是C++複習要點總結(一)的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.