#include
using namespace std;
cout<<「helloworld」<*命名空間下,可以放函式,變數,結構體,類.
*命名空間必須定義在全域性作用域下
*命名空間可以巢狀命名空間
*命名空間是開放的,可以隨時往原先的命名空間新增內容
*無名,匿名命名空間
*當寫了無名命名空間,相當於寫了static int m_c;static int m_d;
*只能在當前檔案內使用.
namespace
int sunwukongid = 10;
void test01()
*如果開啟多個房間也要避免二義性問題
**********c++對c的增強********************
*全域性變數檢測增強 int a; int a = 10; c++會檢測出錯.
*函式檢測增強.引數型別增強,返回值檢測增強.函式呼叫引數檢測增強.
*型別轉換檢測增強.
*struct 增強 c++中struct可以加函式
*c語言中使用必須加入struct關鍵字,c++可以不寫struct.
bool型別增強, c語言沒有bool函式. c++有這個型別
bool flag = true;
只有真和假. true代表真(非0),false代表假(0).
*三目運算子增強
*c語言返回的是值,c++返回的是變數. *c語言中想模仿c++寫, *(a > b ? &a : &b) = 100;
*** const重要*********
*const的增強 c語言受到保護,全域性常量不可以改.
*c 語言種中偽常量,不能寫到c語言陣列裡 int m[m_b}.不可以初始化陣列.
*c語言可以用這種方式來改變常量的值.
*const必須初始化.
int p = (int)&m_b
*p = 200;
*c語言中,const修飾的變數,是偽常量,編譯器是會分配記憶體的.
*c++中,const不會分配記憶體,const int m_b=20 ;可以初始化陣列.
類似於下面的執行過程.
int p = (int)&m_b;
*p = 200;
const int a=20; 不會分配記憶體.
*編譯器會臨時開闢一塊記憶體空間.
*int temp=m_b;//tmp有記憶體.
*int *p=(int *)&temp;
*const 取位址會分配臨時位址.
*const分配記憶體, 只要分配變數就能修改值.
extern編譯器也給const變數分配記憶體
用變數初始化const的變數
*自定義資料型別,加const也會分配記憶體.
*******引用用法
*引用就是取別名
*引用必須引用一塊合法的記憶體空間
*如果函式的返回值是引用,那麼這個函式可以作為左值. &&&&&&引用的本質&&&&&&&&&&
發現是引用,轉為intconst ref=&a;
int &aref = a; // int *const aref=&a;
*這也說明為什麼引用要用初始化.
*內部發現aref是引用,自動幫我們轉換偽 : *aref=20;
*指標的引用
*利用指標引用來開闢空間.
c 對c的增強
本文主要介紹c 對c語言所增強的內容c語言中的變數都必須在作用域開始的位置進行定義 c 中強調語言的 實用性 所有的變數都可以在需要的時候進行定義 c語言的struct定義了一組變數的集合,c編譯器不認為這是一種資料型別 c 中的struct是乙個新型別的定義宣告 在c語言中 int f 表示返回值...
C 對C的擴充套件 增強
c 對c的擴充套件 1.雙冒號 作用域運算子 中對同乙個變數多次宣告,在 塊中使用時,區域性變數會將全域性變數隱藏。若在 塊使用變數前新增 表示為全域性變數。表示作用域運算子,如常見的std cout,std endl 等,表示cout和endl是std作用域下的識別符號。2.命名空間namespa...
c 對c的拓展 增強
一 新增bool型別關鍵字 c中bool型別需要新增stdbool.h標頭檔案,c 則可直接使用 void test bool a true c 可直接定義而c需新增標頭檔案 true和false可直接用做常量使用 二 三目運算子 c 中返回的可以是個變數,但c語言中返回的表示式的值是乙個常量 vo...