所謂namespace是指各種識別符號可見
和格式不一樣,前者沒有字首,實際上,在你的編譯器裡include可以看到這是兩個檔案,開啟檔案發現裡面的**是不一樣的,字尾.h在c++編譯器中已經明確提出不支援了,c++標準為了與c區分開,為了了正確使用命名空間,規定標頭檔案不允許字尾.h
使用時,相當於在c中呼叫庫函式,使用的是全域性命名空間,也就是早期的c++的實現
當使用時,該標頭檔案沒有定義全域性命名空間,必須新增namespace std; 這樣才能正確使用cout
1.在c中只有乙個全域性作用域
2.c語言中的全域性識別符號共享乙個作用域
3.識別符號可能會發生衝突
1.命名空間將全域性作用域分成不同部分
2.不同的命名空間可以同名但是不會發生衝突
3.命名空間可以相互巢狀
4.全域性作用域也叫預設命名空間
使用整個命名空間: using namespace name;
使用命名空間中斷變數: using name::variable;
使用預設命名空間中的變數::variable
預設情況下可以使用預設命名空間中的所有識別符號
#includenamespace namespacea
namespace namespaceb; }
}int main()
; printf("t1.name = %s \n", t1.name); =aaa
printf("t1.age = %d \n", t1.age); =33
return 0;
}
當使用的時候,標頭檔案沒有定義全域性命名空間,必須使用using namespace std; 這樣才能使用cout,如果不使用using namespace std; ,使用cout則需要std::cout C 與C的區別
l c如果不寫返回值,預設是int,而c 中不能不寫返回值 可用void表示無返回值 如func1 l int func1 在c中表示可帶任意引數的函式,這是c的漏洞,使得它避開了引數型別檢查 而c 中表示不帶引數的函式。2 標頭檔案的區別 l c 的標頭檔案去掉了c中的.h,以c字首開始。比如,變...
C與C 的區別
1.void型指標 int x malloc sizeof int 10 在c裡面是合法的,但是在c 中編譯不通過。從bjarne stroustrup給出的解釋是這種型別是不安全的。就是說你可以使用乙個void型的指標指向任何位址,如果你分配了乙個位址給這個void指標指向另乙個與它型別不同的指標...
C與C 的區別
在很大程度上,標準c 是標準c的超集.實際上,所有c程式也是c 程式,然而,兩者之間有少量區別.下面簡要介紹一下最重要的區別.在c 中,民,區域性變數可以在乙個程式塊內在任何地方宣告,在c中,區域性變數必須在程式塊的開始部分,即在所有 操作 語句之前宣告,請注意,c99標準中取消了這種限制.在c中,...