1.基本內置類型
C++包含算數類型和空類型。其中算數類型包含字符,整型數,布爾值及浮點數。即char,int,long,bool,float,double等。注意這裡有一種稱為無符號數的類型unsigned,無符號數恆大於0.需要注意,如果在while中執行:
unsignedint a = 10; while(a> 0) {…}
由於a是無符號整型,因此a恆大於0,邏輯判斷恆為真,程序會陷入死循環。
用例:
字符char:char a = 'a';char b = '1';char c = '!';char a = 0x0000
整型int:int a = 10; int b = -10;
無符號整型unsigned int:unsigned int a = 10;
布爾bool:bool a = true; bool b = false;
浮點float/double:float a = 1.12321; float b = 3.54234
溢出:內置類型在內存中占據的長度受到限制,若表示的值超過一定長度,則發生溢出。如char長度為1字節,即8 bit,若執行:char a = 0x123456789,將9 bit賦給a,則發生溢出。
2.類型轉換
基本內置類型間可互相轉換
int轉bool:若int的值不為0,則轉換為bool後為true,否則為false。
浮點轉int:將截斷小數點後的數
int轉浮點:轉換後對浮點數小數位為0
3.字面值常量
字面值常量即為不可改變的量。如43,“hello”(字符串常量)等
在C++中,字符串常量為const char*類型。其中*代表指針。指針的概念將在之後對內容中進行講解。
4.轉義序列
有一些字符在C++中含有特殊含義,這些情況下要用到轉意序列。
轉義序列可參考:
http://blog.csdn.net/qustdjx/article/details/7728684
5.變量的初始化
建議對所有變量在定義時均賦一個初值,即執行初始化,這一行為可避免大多意想不到的麻煩。
在定義一個變量後,若未為其賦初值,則該變量會被系統默認初始化,賦予一個默認的初始值。該初始值由變量類型決定。
注意初始化與賦值的區別,這在C++中很重要。初始化的含義是創建變量時賦予其一個初始值,賦值的含義是把對象的當前值擦除,以一個新值代替。
初始化:int a = 1; //這裡a被初始化為1
賦值:int a ; a = 1; //這裡a首先被默認初始化為0,之後執行賦值操作,將a賦值為1.
6.變量的作用域
變量可分為全局變量和局部變量。目前只需要知道,在函數體內部定義的變量是局部變量,僅在函數體內有效。(之後會學習到static變量,即靜態變量是例外的,該變量定義後全局有效)
例:
int a = 0; void fun(){ int fa = 0; int fb = 1; } int main(){ int b = 4; return }
其中a是全局變量,fa,fb,b均為局部變量。
7.變量定義和聲明的區別
注意區分定義和聲明的區別,其中定義是在系統內存中開辟一塊空間,用於存放變量。聲明是告訴程序有這個變量存在。變量只能定義一次,但可以聲明多次。
小結:今天介紹了變量中的一些基本知識,下一章將對復合變量中數組這一概念進行詳細分析
PS:這裡對前一章中main函數參數列表做一下解釋。
int_tmain(int argc, _TCHAR* argv[])
其中main對參數列表中包含兩個參數,一個是整型int,另一個是TCHAR*數組,其實就是char**類型,表示為一個字符串數組。
當編譯完一個程序後,在命令行中通過命令執行這段程序時,可能希望對其附上一些參數。如下圖所示
可以看到,通過g++將代碼ShowPar.cc編譯為test後,調用test時,argc為參數總數,argv存放各附加參數。
如:./test hello and
執行test程序,附加參數hello和and,argc的值為3,argv中的內容分別為./test,hello以及and