日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++ primer 5th 笔记:第二章

發布時間:2025/3/21 c/c++ 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++ primer 5th 笔记:第二章 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第二章:變量和基本類型

  筆記:

    1. c++語言規定一個int至少和一個short一樣大,一個long至少和一個int一樣大,一個long long至少和一個long一樣大。其中,數據類型long long是在c++11中新定義的。

    2. 執行浮點運算選用double,這是因為float通常精度不夠而且雙精度浮點和單精度浮點數的計算代價相差無幾。

    3. 切勿混用帶符號類型和無符號類型。其中,帶符號數會自動地轉換成無符號數。

    4. 轉義序列以反斜線作為開始,如\n、\t、\"、\'。也可以使用泛化的轉義序列,如\7(響鈴)、\12(換行符)、\x4d(字符M)。形式是\x后緊跟1個或多個十六進制數字,或者\后緊跟1個、2個或3個八進制數字。參考ASCII碼。

    5. 指定字面值的類型,如L'a'(類型是wchar_t)、u8"hi!"(utf-8字符串字面值)、1E-3F(單精度浮點型字面值,類型是float)。

    6. c++語言中,初始化和賦值時兩個完全不同的操作

    7. c++11新標準中,用花括號來初始化變量得到了全面應用,被稱為列表初始化(list initialization)。這種初始化有一個重要特點:如果我們使用列表初始化且初始值存在丟失信息的風險,則編譯器將報錯。如:

    long double ld = 3.1415926536;int a{ld}, b = {ld}; //錯誤:轉換未執行,因為存在丟失信息的危險int c(ld), d = ld; //正確:轉換執行,且確實丟失了部分信息

    8. 定義在函數體內部的內置類型將不被初始化(uninitialized)。

    9. 建議初始化每一個內置類型的變量。

    10. c++支持分離式編譯,即允許將程序分割為若干個文件,每個文件可被獨立編譯

    11. 聲明使得名字唄程序所知,而定義會申請存儲空間,還可能為變量賦一個初始值。只聲明用關鍵字extern。

    extern int i; // 聲明i而非定義iint j; // 聲明并且定義jextern double pi = 3.1415; //定義

    12. 變量能且只能被定義一次,但是可以被多次聲明。

    13. (a)作用域分為全局作用域塊作用域,定義于main函數之外變量具有全局作用域。(b)作用域能彼此嵌套,被包含的作用域稱為內層作用域(inner scope),包含著別的作用域的作用域稱為外層作用域。(c)作用域中一旦聲明了某個名字,它所嵌套著的所有作用域中都能訪問到該名字。(d)同時,允許內層作用域中重新定義外層作用域中已有的名字,來覆蓋外層名字。而在內層作用域中可以用::reused來訪問外層名字。

    14. 定義引用時,程序把引用和它的初始值綁定(bind)在一起,而不是將初始值拷貝給引用,而且引用只能綁定在對象上,引用即別名

    15. 空指針(null pointer)用NULL、0、nullptr來表示,字面值nullptr是新標準剛引入的一種方法。最好使用nullptr。

    16. 引用本身并非是一個對象,而指針是一個存儲地址的對象

    17. 類型別名(type alias)是一個名字,它是某種類型的同義詞。用關鍵詞typedef。新標準規定一種新方法,使用別名聲明(alias declaration)來定義類型別名。關鍵字using。如:

      typedef double wages;typedef wages base, *p; // p是double*的同義詞using SI = Sales_item; // SI是Sales_item的同義詞

      類型別名重難點理解:

      typedef char *pstring;const pstring cstr = 0; // cstr是指向char的常量指針,頂層constconst pstring *ps; // ps是一個指針,它指向的對象是指向char的常量指針

    18. c++11新標準引入了auto類型說明符,用它就能讓編譯器替我們去分析表達式所屬的類型。因為編譯器通過初始值推斷出變量的類型,所以auto定義的變量必須有初始值

    19. c++11新標準引入另一種類型說明符decltype,它的作用是選擇并返回操作數的數據類型,編譯器分析表達式并得到它的類型,卻不實際計算表達式的值。如:

      decltype(f()) sum = x;

    20. c++11新標準規定,可以為類中數據成員提供一個類內初始值(in-class initializer)。如:

    struct Sales_data{std::string bookNo;unsigned units_sold = 0;double revenue = 0.0;};

    21. 類通常被定義在頭文件中,而且類所在頭文件的名字應與類名字一樣。

    22. 確保頭文件多次包含仍能安全工作的常用技術是預處理器(preprocessor),如:

    #ifndef SALES_DATA_H#define SALES_DATA_H#include <string>struct Sales_data{std::string bookNo;unsigned units_sold = 0;double revenue = 0.0;};#endif

    23. 通常將頭文件中類的名字來構建保護符的名字,以確保唯一性,且名字全部大寫

  重點知識點總結:

  待補充知識點:decltype類型指示符。  

  c++中const限定符

    1. 允許一個常量的引用半丁非常量的對象、字面值,甚至是一個一般表達式。

    2. 允許另一個指向常量的指針指向一個非常量。

    3. 頂層const表示指針本身是一個常量,而名詞底層const表示指針所指的對象時一個常量。

    4. 底層cosnt的限制不能忽視,拷貝時,對象必須具有相同的底層const資格或者兩個對象的數據類型必須能夠轉換,一般來說,非常量可以轉換為常量,反之不行。

    如:

    /* 范圍1cosnt int ci = 1024;const int &r1 = ci; //正確:引用機器對象都是常量r1 = 41; //錯誤:r1是對常量的引用int &r2 = ci; // 錯誤:試圖讓一個非常量引用指向一個常量對象*//*范圍2int i = 42;const int &r1 = i; //正確(常用):允許將const int& 綁定到一個普通int對象上const int &r2 = 42; // 正確:r2是一個常量引用;編譯器會將其綁定到一個臨時對象上const int &r3 = r1 * 2; //正確:r3是一個常量引用int &r4 = r1 * 2; // 錯誤:r4是一個普通的非常量引用*//*范圍3int i = 0;int *const p1 = &i; // 不能改變p1的值,這是一個頂層constconst int ci = 42; // 不能改變ci的值,這是一個頂層constconst int *p2 = &ci; // 允許改變p2的值,這是一個底層constconst int *const p3 = p2; //靠右的const是頂層const,靠左的是底層constconst int &r = ci; // 用于聲明引用的const都是底層const

  術語

    轉義序列(escape sequence)、類型說明符(type specifier)、作用域(scope)、復合類型(compound type)、

    引用(reference)、預處理變量(preprocessor variable)、常量表達式(const expression)、類型別名(type alias)、

    預處理器(preprocessor)、頭文件保護符(header guard)。

    術語解釋:

    常量表達式(const expression):指值不會改變并且在編譯過程就能得到計算結果的表示式。

                                                 2016-10-25?19:32:34

轉載于:https://www.cnblogs.com/wzhe/p/5997817.html

總結

以上是生活随笔為你收集整理的c++ primer 5th 笔记:第二章的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。