在c++命名空間中,std是標準的命名空間。
企業規範:
g_stu: 以g_ 開頭的是全域性變數
stu_t: 以_t 結尾的代表typedef規則定義的別名
(1)自定義乙個命名空間:
namespace spacea //命名空間定義結尾無分號(;)
(2)命名空間的使用
//法1:
using spacea::g_a;
//法2:
spacea::g_a
//法3:
using namespace spacea;
注:命名空間中支援巢狀命名空間,但此時引用具體變數時,必須引到變數定義的最內層命名空間為止。
2、c++中的變數隨用隨定義,但是c語言建議在函式開頭定義變數;
3、c++對struct進行了優化
struct student
;//c語言定義結構體變數
struct student s1;
//c++定義結構體變數
student s1;
注:c語言中相像c++中一樣簡便定義結構體變數需用到typedef
4、c++對函式返回值型別做嚴格的檢測
5、c++對引數個數進行嚴格匹配
6、c語言中無bool型別,c++中加入了bool型別(僅含有true 和 false 兩個值),佔取乙個位元組空間
7、c++對const進行了增強
注: c語言中的const是個冒牌貨,可以使用指標修改常變數的值;c++對這一點進行了優化
增強部分:
(1)c語言中,可以通過指標改變常變數的值(不安全)
(2)c++中,對常量做了功能增強,不可通過指標更改常量的值
注:在c++中增加了符號表,通過鍵值對建立了值與常量的對映,進而確保常量值不可變
8、三目運算子
左值:放在等號左邊,一般是可修改的變數;
右值:放在等號右邊,一般是常量或者表示式
三目運算子當左值:
//c語言中,需通過位址
*(a > b? &a : &b) = 50;
//c++中三目運算子可以直接當左值
(a > b? a : b) = 60;
9、列舉型別(大型專案中常用)——相當於批量定義巨集
enum season
;//定義列舉變數
enum season s = aut;
//在c語言中,列舉變數是乙個整型變數
需明確:若改變aut值為100,隨即win值就變更為101
注:列舉變數一般用於switch中,為case設定不同的條件
C 較C新功能
讀 c primer 第5版 c 11標準 一些記錄 1.變數初始化 列表初始化 c 語言定義了好幾種初始化形式,如 int units sold 0 int units sold int units sold int units sold 0 四種形式等價,但 和 不執行強制型別轉換,如 long...
從C語言過渡到C 之基本變化
說到c 和c語言的區別,大部分人都會想到物件導向和面向過程。然而這種說法並不準確。物件導向和面向過程指的是兩種不同的程式設計思想,而c 與c是兩種程式語言,難道c 就不能用於面向過程去解決問題嗎,當然可以。而物件導向的設計思想也可以用到c語言中去,我之前的文章就涉及過這方面的知識。我們這個系列就是要...
C 中各種集合模擬較
陣列 array 的不足 即 集合與陣列的區別 陣列是固定大小的,不能伸縮。雖然system.array.resize這個泛型方法可以重置陣列大小,但是該方法是重新建立新設定大小的陣列,用的是舊陣列的元素初始化。隨後以前的陣列就廢棄!而集合卻是可變長的。陣列要宣告元素的型別,集合類的元素型別卻是ob...