c++有兩種常數:文字,符號。
常量字面值常量文字數字插入**。他們是常數,因為你不能改變他們的價值觀。
1int x = 5;// 5是乙個字面常量
常量可以字尾,確定其型別。整數常量可以有乙個u或u字尾,意味著他們是無符號的。整數常量也可以有乙個l或者l字尾,這意味著他們是長整數。然而,這些字尾通常是可選的,因為編譯器通常可以從上下文中不斷告訴你需要什麼樣的。12
無符號整型值= 5;/ /無符號常量
長nvalue2 = 5;/長常數
預設情況下,浮點字面常量有一種雙。將它們轉換成浮點值,f或f可以使用字尾:
1浮fvalue = 5.0f;/浮動常數
浮點常量也可以使用l或者l字尾讓他們長的雙打。
一般來說,這是乙個好主意,盡量避免使用常量,不是0或1。更多的細節,你可以回顧幻數的部分,以及為什麼它們是個壞主意。
符號常量
當你在以前的教訓,你可以使用#定義預處理器指令以宣告符號常量:12
#定義yen_per_dollar 122
int nyen = ndollars * yen_per_dollar;
有兩個主要問題宣告符號常量使用#定義。首先,因為它們是由預處理器解決,這與定義的值代替符號名稱,#定義符號常量不顯示在偵錯程式。因此,如果你只看到宣告int nyen = ndollars * yen_per_dollar;,你將不得不去尋找#定義宣告以找出真正的價值是用yen_per_dollar。
第二,#定義的值總是具有全域性範圍(我們將談論的一節中的區域性和全域性變數)。這意味著一種價值#在一段**的定義可能有乙個命名衝突與價值#定義具有相同的名稱在另一塊**。
乙個更好的方式來做符號常量是通過使用const關鍵字。const變數必須指定乙個值時宣布,然後這個值不能改變的。這是上面的**片段應該寫的方式:12
const int nyenperdollar = 122;
int nyen = ndollars * nyenperdollar;
宣告乙個變數作為const阻止我們無意中更改它的值:12
const int nyenperdollar = 122;
nyenperdollar = 123;//編譯器錯誤!
雖然乙個恆定的變數似乎是矛盾的,他們可以在幫助檔案**和避免幻數是非常有用的。有些程式設計師喜歡用大寫的名字為const變數(匹配的#定義的值的型別)。然而,我們將使用正常的變數命名規則,這是更常見的。const變數的行為就像在任何情況下,除了正常的變數,他們不能分配給。
2.9匈牙利表示法
指數
乙個字元驅動
實現乙個基本框架 define notice fmt,args.printk kern notice scull fmt,args define error fmt,args.printk kern err scull fmt,args static init int scull init void...
乙個字句切割 strtok s
突然想到的一件事這是,之前是用stringstream來對那些東西切割的,只是空格分隔的,之後發現不能切割其他符號的字句 也可能是我水平有限 然後我發現strtok s可以自定義分割符,於是我記錄一下這個操作。include include include using namespace std c...
累就乙個字
最近也學了一把跳槽,新公司坐落在北師大校園裡,環境是一流,可惜就是遠過頭了,一天就要浪費兩個小時在車上,比以前還慘。值得安慰的是公司坐落在學校裡,每天在校園裡看到那些青春活力的學生,也會覺得自己年輕了好幾歲,感覺非常棒。最重要的是北師大靚女成群,真是大飽眼福啊 別鄙視咱,哪個男人不喜歡欣賞美女,除非...