欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
第一部分 基礎語(yǔ)言之一變量和基本類(lèi)型

1.1 基本內置類(lèi)型

C++標準規定的最小,存儲空間,但不阻止編譯器使用更大空間
       bool                    8bit

       char                    8bit

        wchar_t                   16bit

       short                   16bit

       int                    16bit
       long                    32bit

       float                   6位有效數字

       double                  10位有效數字

       long double               10位有效數字

1.1.1 整型(integral type

              整數、字符和布爾的算數類(lèi)型合成整型

字符型:char、wchar_t(表示擴展字符集,如表示中文等)

整型值:short 半個(gè)字長(cháng)(32為機器為16bit)、int 一個(gè)字長(cháng)、long 2個(gè)字長(cháng)(在32bit機上與int同)

布爾型:bool 表示真值true,表示假值false ;0值算數類(lèi)型表示false,任何非零值都表示true.

1.帶符號和無(wú)符號類(lèi)型

       bool外,整型可以是帶符號的(signed)也可以是無(wú)符號的(unsigned)

int、short、long默認是帶符號的,無(wú)符號要指明unsigned,

unsigned unsigned int的簡(jiǎn)寫(xiě)

 

char有三種類(lèi)型,普通char、unsigned char 、signed char一般編譯器用后兩者的之一表示普通char類(lèi)型

2.整型的表示

C++標準未定義signed類(lèi)型如何有位表示,由編譯器自己決定,以unsigned char 8bit)為例,在MS-VS中編譯器表示范圍:-128~127 

計算機存儲整型的補碼,最高位為符號位,使用補碼其實(shí)就是使 +0D -0D ,只占用一個(gè)編碼即補碼都為0000 0000B,這樣編碼就可以充分利用,1000 0000表示-128,所以編碼結構如下:

                          1000 0000  -------------->  -128(空余的補碼)

                         1000 0001  -------------->  -127

       負數           ……

                         1111 1110  -------------->  -2

                         1111 1111  -------------->  -1

                         0000 0000  -------------->  0 (+0、-0的補碼是一樣的)

                         0000 0001  -------------->  1

       正數          ……

                         0111 1110  -------------->  126

                         0111 1111  -------------->  127

3.整型的賦值

unsigned賦值溢出,將會(huì )取模運算,其實(shí)就是高位被截斷,直接取低位,signed類(lèi)型大部分編譯器也是這么做,但不能得到保證。

1.1.2 浮點(diǎn)型

一個(gè)float用一個(gè)字32bit表示,double用兩個(gè)字64bit表示,long double3個(gè)或四個(gè)字來(lái)表示96bit128bit.類(lèi)型的取值范圍決定了,類(lèi)型的有效數字。

種類(lèi)-------符號位-------------指數位----------------尾數位---- 
float---31(1bit)---30-23(8bit)----22-0(23bit) 

double--63(1bit)---62-52(11bit)---51-0(52bit) 

取值范圍主要看指數部分: 
float的指數部分有8bit(2^8),由于是有符號型,所以得到對應的指數范圍-128~128。 

double的指數部分有11bit(2^11),由于是有符號型,所以得到對應的指數范圍-1024~1024。 

由于float的指數部分對應的指數范圍為-127~128(使用余數碼表示,而非補碼),所以指數取值范圍為: 
2^(-127)2^128,約等于1/1.7E38  +3.4E38 

精度(有效數字)主要看尾數位: 
float的尾數位是23bit(8,388,608),對應6~7位十進(jìn)制數,所以有效數字有的編譯器是6位,也有的是7位,表示不了全部的7位有效數字。

1.2 字面值常量

1.2.1  整型字面值規則

20  //decimal  

024  //octal   0開(kāi)頭表示8進(jìn)制

0x14  //hexadecimal  0x或者0X開(kāi)頭表示16進(jìn)制

128U 表示無(wú)符號、128L表示長(cháng)整型

1.2.2 浮點(diǎn)字面值規則

3.114F 表示單精度

3.14L  表示擴展精度

1.2.3 布爾和字符字面值規則

字符用單引號,前面加'L’可以得到wchar_t類(lèi)型

1.2.4 字符串字面值連接

std:cout<< “a multi-line”

                   “string literal”

                   “using concatenation”

             << std::endl;

僅由空格、制表符、換行分開(kāi)的字符串字面值,可連接成一個(gè)新的字符串

1.2.5 浮點(diǎn)字面值規則

std:cout<< “a multi-line”<< st\

d::endl;

相當于同一行代碼等價(jià)于 std:cout<< “a multi-line”<< std::endl;

要保證 '\’ 為改行最后一個(gè)字符,后面不能有注釋或空格  

1.3 變量

1.3.1 左值和右值

左值:可以出現在賦值語(yǔ)句的左邊或右邊

右值:只能出現在賦值語(yǔ)句的右邊 

1.3.2 變量名

變量名,由字母數字下劃線(xiàn)組成,不能以數字開(kāi)頭,不能使用關(guān)鍵字


1.3.3 初始化
C++ 支持兩種初始化變量的形式:
復制初始化和直接初始化。復制初始化語(yǔ)法用等號(=),直接初始化則是把初始化式放在括號中:
int ival(1024); // direct-initialization
int ival = 1024; // copy-initialization

1.3.4 初始化規則
1.內置類(lèi)型初始化
內置類(lèi)型變量是否自動(dòng)初始化取決于變量定義的位置。
在函數體外定義的變量都初始化成 0,
在函數體里定義的內置類(lèi)型變量不進(jìn)行自動(dòng)初始化。除了用作賦值操作符的左操作數,
未初始化變量用作任何其他用途都是沒(méi)有定義的。未初
始化變量引起的錯誤難于發(fā)現。

2.類(lèi)類(lèi)型初始化

如果定義某個(gè)類(lèi)的變量時(shí)沒(méi)有提供初始化式,這個(gè)類(lèi)也可以定義初始化時(shí)的

操作。它是通過(guò)定義一個(gè)特殊的構造函數即默認構造函數來(lái)實(shí)現的。這個(gè)構造函
數之所以被稱(chēng)作默認構造函數,是因為它是“默認”運行的。如果沒(méi)有提供初始
化式,那么就會(huì )使用默認構造函數。不管變量在哪里定義,默認構造函數都會(huì )被
使用。

1.3.5 變量定義和聲明

在變量使用處定義變量,在頭文件中申明全局變量

1.3.6 變量作用域

命名空間作用域  namespace scope

類(lèi)作用域          class scope
全局作用域      globle scope
局部作用域      local scope
語(yǔ)句作用域   statement scope

C++程序內存空間

1.4 const限定符

1.4.1 定義const對象
const對象再定義時(shí)必須初始化,因為定義以后,const對象就不可以再修改
可用于循環(huán)的界限等,這樣變量名即表明了界限的意義,又可以在多個(gè)地方使用

1.4.2 const對象默認為文件的局部變量
同過(guò)一個(gè)例子來(lái)說(shuō)明:
// file_1.cc
// defines and initializes a const that is accessible to other files
extern const int bufSize = fcn();
// file_2.cc
extern const int bufSize; // uses bufSize from file_1
// uses bufSize defined in file_1
for (int index = 0; index != bufSize; ++index)
本程序中,file_1.cc 通過(guò)函數 fcn 的返回值來(lái)定義和初始化 bufSize。
而 bufSize 定義為 extern,也就意味著(zhù) bufSize 可以在其他的文件中使用。
file_2.cc 中 extern 的聲明同樣是 extern;這種情況下,extern 標志著(zhù)
bufSize 是一個(gè)聲明,所以沒(méi)有初始化式。
非 const 變量默認為 extern。要使 const 變量能夠在其他的
文件中訪(fǎng)問(wèn),必須地指定它為 extern。

1.5 引用
引用是一種復合類(lèi)型,通過(guò)在變量名前添加“&”符號來(lái)定義。
復合類(lèi)型是指用其他類(lèi)型定義的類(lèi)型。
在引用的情況下,每一種引用類(lèi)型都“關(guān)聯(lián)到”某一其他類(lèi)型。
不能定義引用類(lèi)型的引用,但可以定義任何其他類(lèi)型的引用。

引用必須用與該引用同類(lèi)型的對象初始化:
int ival = 1024;
int &refVal = ival;  // ok: refVal refers to ival
int &refVal2;          // error: a reference must be initialized
int &refVal3 = 10; // error: initializer must be an object

當引用初始化后,只要該引用存在,它就保持綁定到初始化時(shí)
指向的對象。不可能將引用綁定到另一個(gè)對象。

const引用
const int ival = 1024;
const int &refVal = ival;  // ok: both reference and object are const
int &ref2 = ival;    // error: non const reference to aconst object

const 引用可以初始化為不同類(lèi)型的對象或者初始化為右值:
int i = 42;
// legal for const references only
const int &r = 42;
const int &r2 = r + i;
同樣的初始化對于非 const 引用卻是不合法的,而且會(huì )導致編譯時(shí)錯誤。

觀(guān)察將引用綁定到不同的類(lèi)型時(shí)所發(fā)生的事情,最容易理解上述行為。假如我們
編寫(xiě)
double dval = 3.14;
const int &ri = dval;
編譯器會(huì )把這些代碼轉換成如以下形式的編碼:
int temp = dval;               // create temporary int from the double
const int &ri = temp;      // bind ri to that temporary
如果 ri 不是 const,那么可以給 ri 賦一新值。這樣做不會(huì )修改 dval,
而是修改了 temp。期望對 ri 的賦值會(huì )修改 dval 的程序員會(huì )發(fā)現 dval 并沒(méi)

1.6  typedef 名字
類(lèi)型別名,通常被用于以下三種目的
· 為了隱藏特定類(lèi)型的實(shí)現,強調使用類(lèi)型的目的。
· 簡(jiǎn)化復雜的類(lèi)型定義,使其更易理解。
· 允許一種類(lèi)型用于多個(gè)目的,同時(shí)使得每次使用該類(lèi)型的目的明確。
 
1.7 枚舉
枚舉的定義包括關(guān)鍵字 enum
// input is 0, output is 1, and append is 2
enum open_modes {input, output, append};

可以為一個(gè)或多個(gè)枚舉成員提供初始值,用來(lái)初始化枚舉成員的值必須是一
個(gè)常量表達式。常量表達式是編譯器在編譯時(shí)就能夠計算出結果的整型表達式。
整型字面值常量是常量表達式
例如,可以定義下列枚舉類(lèi)型:
// shape is 1, sphere is 2, cylinder is 3, polygon is 4
enum Forms {shape = 1, sphere, cylinder, polygon};

枚舉成員值可以是不唯一的。
// point2d is 2, point2w is 3, point3d is 3, point3w is 4
enum Points { point2d = 2, point2w,
point3d = 3, point3w };
不能改變枚舉成員的值。枚舉成員本身就是一個(gè)常量表達式,所以也可用于
需要常量表達式的任何地方。

1.8 類(lèi)類(lèi)型
每個(gè)類(lèi)都定義了一個(gè)接口和一個(gè)實(shí)現。接口由使用該類(lèi)的代碼需要執行的操
作組成。實(shí)現一般包括該類(lèi)所需要的數據。實(shí)現還包括定義該類(lèi)需要的但又不供
一般性使用的函數。

用 class 和 struct 關(guān)鍵字定義類(lèi)的唯一差別在于默認訪(fǎng)問(wèn)
級別:默認情況下,struct 的成員為 public,而 class 的成
員為 private。

1.9 編寫(xiě)自己的頭文件
頭文件為相關(guān)聲明提供了一個(gè)集中存放的位置。
頭文件一般包含類(lèi)的定義、extern 變量的聲明和函數的聲明。
對于頭文件不應該含有定義這一規則,有三個(gè)例外。頭文件可以定義類(lèi)、值
在編譯時(shí)就已知道的 const 對象和 inline 函數

頭文件的正確使用能夠帶來(lái)兩個(gè)好處:保證所有文件使用給定實(shí)體的同一聲
明;當聲明需要修改時(shí),只有頭文件需要更新。

設計頭文件還需要注意以下幾點(diǎn):頭文件中的聲明在邏輯上應該是統一的。
編譯頭文件需要一定的時(shí)間。如果頭文件太大,程序員可能不愿意承受包含該頭
文件所帶來(lái)的編譯時(shí)代價(jià)。
為了減少處理頭文件的編譯時(shí)間,有些 C++的實(shí)現支持預編譯頭文件。

當該 const 變量是用常量表達式初始化時(shí),可以保證所有的變量都有相同
的值。但是在實(shí)踐中,大部分的編譯器在編譯時(shí)都會(huì )用相應的常量表達式替換這
些 const 變量的任何使用。所以,在實(shí)踐中不會(huì )有任何存儲空間用于存儲用常
量表達式初始化的 const 變量。
如果 const 變量不是用常量表達式初始化,那么它就不應該在頭文件中定
義。相反,和其他的變量一樣,該 const 變量應該在一個(gè)源文件中定義并初始
化。應在頭文件中為它添加 extern 聲明,以使其能被多個(gè)文件共享。

1.9.1 預處理器的簡(jiǎn)單介紹

預處理器變量避免重復包含
可以使用這些設施來(lái)預防多次包含同一頭文件:
#ifndef SALESITEM_H
#define SALESITEM_H
// Definition of Sales_itemclass and related functions goes here
#endif

使用自定義的頭文件
#include 指示接受以下兩種形式:
#include <standard_header>
#include "my_file.h"
如果頭文件名括在尖括號(< >)里,那么認為該頭文件是標準頭文件。編譯器將會(huì )在預定義的位置集查找該頭文件,這些預定義的位置可以通過(guò)設置查找路徑環(huán)境變量或者通過(guò)命令行選項來(lái)修改。使用的查找方法因編譯器的不同而差別迥異。建議你咨詢(xún)同事或者查閱編譯器用戶(hù)指南來(lái)獲得更多的信息。如果頭文件名括在一對引號里,那么認為它是非系統頭文件,非系統頭文件的查找通常開(kāi)始于源文件所在的路徑。


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
C++ Primer 筆記-第2章 變量和基本類(lèi)型
C++11新特性
C++11 標準新增特性
常量、變量、運算符
Rust學(xué)習筆記(3)- 變量和可變屬性
C 面向對象編程技術(shù)基礎知識
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久