C++ Primer Plus 一
1.重寫庫函數:
在main方法之前先聲明,例如: double sqrt(double);
在main方法之后,給出新的sqrt方法的實現,例如:
double sqrt(double d)
{
return 2.5;
}
2.一些說明
main不是關鍵字,由于它不是語言的組成部分,不過,他是一個必不可少的函數的名稱。可以用作變量名(在一些很神秘的以至于無法再這里介紹的情況中,將main用作變量名會引發錯誤,由于它在這種情況下都是容易混淆的,因此最好不要這樣做).同樣,其他函數名和變量名也都不能是關鍵字。不過,在程序中將同一個名稱(比如cout)用作對象名會把編譯器搞糊涂。也就是說,在不適用cout對象進行輸出的函數中,可以將cout用作變量名,單不能再一個函數中同時將cout用作對象名和變量名。
3.關于給遍歷命名:
以兩個下劃線或下劃線和大寫字母打頭的名稱被保留給實現(編譯器及其使用的資源)使用。以一個下劃線開頭的名稱被保留給實現,用作全局標示符。
C++對于名稱的長度沒有限制,名稱中所有的字符都有意義。這一點使得C++與ANSIC(C99)標準有所區別,后者只保證名稱中的前63個字符有意義(在ANSIC中,前63個字符相同的名稱被認為是相同的,即使第64個字符不同).
4.關于位與字節
計算機內存的基本單位是位(bit).可以將位看做電子開關,可以開,也可以關。關表示值0,開表示值1.8位的內存塊可以設置出256種不同的組合,因為每一位都可以有兩種設置,所以8位的總組合為為256種。因此,8位單元可以表示0~255或者-128到127.每增加一位,組合數便加倍。
字節(byte)通常指的是8位的內存單元。從這個意義上說,字節值的就是描述計算機內存量的度量單位。1KB=1024字節,1MB=1024KB
5.C++特殊賦值
除了正常的給變量賦值之外,還可以這樣:
int i=12;
int i(12);
兩者等效。
?6.符號常量--預處理器方式
#define INT_MAX 32767
和 #include一樣,也是一個預處理器編譯指令。該編譯指令告訴預處理器:在程序中查找INT_MAX,并將所有的INT_MAX都替換為32767.因此#define編譯指令的工作方式與文本處理器中的全局搜索和替換命令相似。#define是C語言遺留下來的。C++有一種更好的創建符號常量的方法(使用關鍵字const),所有不會經常使用#define。不過,有些頭文件,尤其是那些被設計成可用于C和C++的頭文件,必須使用#define.
7.輸出
cout默認輸出的是十進制的數值,如果想輸出八進制或者十六進制的數值可以顯示控制符:
cout<<hex<<"十六進制"<<endl;
cout<<oct<<"八進制"<<endl;
在修改格式以前,原來的格式一直有效.
8.轉義序列
換行符 : \n,十進制? 10, 十六進制0xA
水平制表符? \t,十進制 9,十六進制0x9
垂直制表符 \v,十進制 11, 十六進制0xB
退格? \b ,十進制 8,十六進制0x8
回車 \r ,十進制 13,十六進制0xD
振鈴 \a|,十進制7,十六進制0x7
反斜杠 \,十進制92,十六進制0x5C
問號 \? ,十進制 63,十六進制0x3F
單引號 \' ,十進制 39,十六進制0x27
雙引號 \",十進制 34,十六進制 0x22
9.數值轉換潛在的問題
1>將較大的浮點類型轉換為較小的浮點類型,例如將double轉換為float,問題:精度降低,值可能超出目標類型范圍,在這種情況下,結果將是不確定的
2>將浮點類型轉換為整型,問題:小樹部分丟失,原來的值可能超出目標類型的取值范圍,在這種情況下,結果將是不確定的。
3>將較大的整型轉換為較小的整型,如將long轉換為short,問題:原來的值可能超出目標類型的取值范圍,通常只復制右邊的字節。
轉載于:https://www.cnblogs.com/kingdom_0/articles/2313455.html
總結
以上是生活随笔為你收集整理的C++ Primer Plus 一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: F# 和Silverlight 4
- 下一篇: C++中实现Singleton的正确方法