C++之整理一些最近看书的收获
1 ?short 只能修飾 int 。
2 ?long 只能修飾 int 和 double (以及 long ,比如 long long a ; 是 long long int a; 的簡寫) 。
3 ?char 和 int 型數可以分別用 unsigned 和 signed 來修飾,表示帶符號和不帶符號。
4 ?實型數( float 和 double )一定是帶符號的,不能用 unsigned 或 signed 來修飾。
5 ?空值類型 void :
5.1 ?把 void 說成空值類型并不十分恰當。當 void 作為函數的返回類型時,表明該函數不需要任何類型的返回值。
5.2 ?程序運行時,可以動態地申請內存。指向該內存塊的指針是 void 指針類型。 void 類型指針可以轉換為其他類型指針。
6 ?#define PI 3.14159265 // 這種定義常量的方法有缺點,因為編譯系統不能對常量的數據類型進行檢查。
7 ?sizeof()是運算符,不是函數,在用表達式初始化一個常量時(常量在編譯時就能求值,用const定義也是一樣),表達式中不能含有某個函數,也不能含有某個變量,但是可以用sizeof()。
8 ?一個實型常量如果不另作說明,其隱含類型是 double 型,添加后綴便改變其類型。例如:
123.45——無后綴,默認為 double 型,有效位為15。
123.45F——添加后綴(大寫字母 F ),此數改為 float 型,有效位為7。
123.45f——添加后綴(小寫字母 f ),此數改為 float 型,有效位為7。
123.45L——添加后綴(大寫字母 L ),此數改為 long double 型,有效位為19。
123.45l——添加后綴(小寫字母 l ),此數改為 long double 型,有效位為19。
9 ?假設 a 為 float 型變量。 a = 2.45678 * 4523.65 ,即:以 a 來獲取 2.45678 與 4523.65 的乘積。
這里,float 型變量 a 的有效數字為 7 位,用戶對這個精度已經滿意。但系統卻將 2.45678 和 4523.65 這兩個數作為雙精度數來處理,因此運算速度降低,而結果卻的有效位數仍取決于 a 的類型。為了提高運算速度,可為這兩個數添加后綴 F 或 f ,即賦值語句改為:
?a = 2.45678F * 4523.65f ?,這樣,編譯系統便把這兩個操作數視為單精度數來進行計算,結果被賦給 a 而有效的數字仍為 7 位。
10 ?變量的作用域與可見性
10.1 ?變量的有效范圍稱為作用域( Scope )。
10.2 ?可見性( Visualization )指的是變量在某個范圍內能否被訪問。
10.3 ?在變量作用域之外,該變量不可見。但在作用域內,如果先定義一個變量,在其后的一個子域內,又定義一個同名變量,則在該子域內,后者“屏蔽”了前者。換句話說,前一個變量的作用域覆蓋其中的子域,但它在子與中是不直接可見的。
10.4 ?定義于程序塊(由花括號 “ { ” 和 “ } ” 括起來的語句序列)內的變量稱為局部變量,它的適用范圍開始于定義點,終止于本程序塊的末尾。這個有效范圍稱為作用域。
1 { // 塊A開始2 float a,b; // a和b是塊A內的局部變量,作用域起始于這一點
3
4 for(int i=0;i<10;i++) // i是塊A的局部變量,作用域始于這一點
5 { // 塊B開始
6 int j=0; // j是塊B內的局部變量,作用域是塊B
7 } // 塊B結束
8
9 } // 塊A結束,變量a,b,i 作用域終止于此
10.5 ?內塊的變量屏蔽了塊外的同名變量,并不意味著內塊不能訪問外塊的同名變量。在內塊中,同名變量之前加了辨識符“ :: ” ,則所訪問的是外塊的那個變量。
1 { //A開始2 int i = 10;
3 { //B開始
4 int i = 7;
5 cout << i << endl; // 顯示塊B的i(i=7)
6 { //C開始
7 int i = 5;
8 cout << i << endl; // 顯示塊C的i(i=5)
9 cout << ::i <<endl; // 顯示塊B的i(i=7)
10 } //C結束
11 cout << ::i <<endl; // 顯示塊A的i(i=10)
12 } //B結束
13 cout << i << endl; // 顯示塊A的i(i=10)
14 } //A結束
10.6 ?定義于函數之外的變量稱為全局變量。外部變量就是全局變量,其作用域起始于定義點,終止于本源文件的末尾。
10.7 ?為了擴大作用域,在定義點之前引用某外部變量,就必須在引用前,用關鍵字 extern 先聲明該外部變量。其定義可以放在引用點之后。
10.8 ?在多文件的程序中,如果一個文件已經定義了某個外部變量,則另一個文件可以用關鍵字 extern 引用該變量。注意:如果兩個文件同時定義某個外部變量,則在進行程序的連接時會出現“重復定義”的錯誤。
10.9 ?一般來說,把建立存儲空間的說明稱為定義( int a; // 定義性聲明,要為 a 分配內存空間),而把不需要建立存儲空間的說明稱為聲明( extern b; // 引用性聲明,在別處分配內存空間)。
10.10 ?外部變量定義與外部變量聲明不同。外部變量定義只有一次,其位置必須在所有函數之外,而在同一文件中,外部變量可以多次聲明,既可以在函數之外(在定義點之前),也可以在各函數之內。
10.11 ?用 static 聲明外部變量為靜態全局變量,可限制外部變量的作用域,使它只能在本文件內被引用。
11 ?嵌入指令也可以指定帶路徑的文件名,例如
1 #include "E:\P\File1.cpp"?
轉載于:https://www.cnblogs.com/cybersword/archive/2011/12/01/Cpp_CyberSword.html
總結
以上是生活随笔為你收集整理的C++之整理一些最近看书的收获的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js控制图像等比例缩放
- 下一篇: CorelDRAWX4的VBA插件开发(