C 的一些知識以及和C語言的不同

2021-07-26 16:41:07 字數 2078 閱讀 9364

1.資料型別

- c++提供了新的資料型別:bool型

2.初始化方法

- c語言:int x = 1(複製初始化)

- c++ : 除了複製初始化還有直接初始化:int x(1)

3.隨用隨定義

- c語言必須先最前面定義

- c++可以在中間隨用隨定義

4.輸入和輸出

- cin和sin

-cout<>x;

-cin>>x>>y;

- 優點:不用關注佔位符,不用關注資料型別

5.命名空間

- 關鍵字:namespace

namespacea  

namespace

b

cout

<::x

6.引用

int a=3;

int &b=a;//引用必須初始化

結構體型別的引用同理

指標型別的引用:

型別 *&指標引用名 = 指標;

引用作函式引數:

void fun(int &a, int &b)

int x = 10,y = 20;

fun(x,y);//呼叫的時候直接寫x,y就能改變x,y的值

不使用引用時:

void fun(int

*a, int

*b)

int x = 10,y = 20;

fun(&x,&y);//改變x,y的值

7.const

const與指標:

int x = 3;

const

int *p = &x;

//p = &y; 正確

//*p = 4; 錯誤

int x = 3;

int *const p = &x;

//p = &y;是錯誤的

const

int x =3;

const

int *const p = &x;

//p = &y;

//*p = 4;

//都是錯誤的

const與引用:

int x = 3;

const

int &y = x;

//x = 10;正確

//y = 20;錯誤

const

int x = 3;

int *y = &x;

//錯誤,因為指標是可變的,而指標指向的x是不可變的,這樣我們就用乙個許可權大的去接受乙個許可權小的,有危險(可以通過改變指標的值來改變x,不可行)。

int x = 3;

const

int *y = &x;

//正確,用許可權小的去接受許可權大的

巨集定義也是定義常量,但是系統不檢查錯誤.

8.函式

引數預設值

最右邊的引數必須賦值

實參覆蓋預設值

函式過載

名稱相同引數可辨

內聯函式

inline

效率高 但條件有限

9.記憶體管理

使用new來申請記憶體,使用delete來釋放記憶體

c語言使用

void *malloc(size_t size)//申請記憶體

void

free(void *memblock) //釋放記憶體

申請記憶體需要判斷是否成功,釋放記憶體需要設空指標

C語言的一些誤用和知識總結

在學習微控制器的時候才真正知道c語言是什麼它是來幹什麼的 但是 c語言用到嵌入式只是它小小的一部分他的應用還有很多地方呢,呵呵我們這裡就不討論這個了。我們是不是在寫程式的時候錯誤很多就算編譯通過了也達不到我們預期的結果,完了自己是不是也很難找到錯在哪兒吧 我絕得語言之所以能稱之為語言,它肯定是一種工...

C語言的一些誤用和知識總結

在學習微控制器的時候才真正知道c語言是什麼它是來幹什麼的 但是 c語言用到嵌入式只是它小小的一部分他的應用還有很多地方呢,呵呵我們這裡就不討論這個了。我們是不是在寫程式的時候錯誤很多就算編譯通過了也達不到我們預期的結果,完了自己是不是也很難找到錯在哪兒吧 我絕得語言之所以能稱之為語言,它肯定是一種工...

C語言的一些誤用和知識總結

在學習微控制器的時候才真正知道c語言是什麼它是來幹什麼的 但是 c語言用到嵌入式只是它小小的一部分他的應用還有很多地方呢,呵呵我們這裡就不討論這個了。我們是不是在寫程式的時候錯誤很多就算編譯通過了也達不到我們預期的結果,完了自己是不是也很難找到錯在哪兒吧 我絕得語言之所以能稱之為語言,它肯定是一種工...