c 對c的增強

2021-09-23 11:10:34 字數 1727 閱讀 2699

#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...