c 第一天筆記 上

2021-06-27 14:46:23 字數 4207 閱讀 6822

有關c與c++強型別與弱型別區別

void main1()

cpp獨有的變數初始化與iostream實現輸入與輸出

//int  a = 5;c語言和c++都可以這樣

//int a(5); c++獨特的初始化方式

//double a(3.5);

//char *str = "1234";

//char *str("china");

wchar_t *str(l"china"); //寬字元

//cout << str;//這樣是輸出str變數的位址

//wcout << str;寬字元,漢字,棒子文

system("pause");

注意:cout是用來輸出char的,如果用cout輸出wchar,只會輸出位址,要使用wcout輸出wchar。wcout預設是不輸出中文的,要想輸出中文,要先加入setlocale( lc_all, "chs" );這行**。

c++要求

1.掌握各個知識點,並強化點與點之間的聯絡,

2.充分理解設計模式,

3.學會綜合應用所有的知識點

c++與c標頭檔案的不同

#include//加以區分c++的標頭檔案,還是c語言的標頭檔案

在.cpp中用c的**, c的標頭檔案已經優化加了extern c使用c的呼叫與鏈結約定

c++獨有的函式過載

:關於**模式

過載函式是函式的一種特殊情況,為方便使用,c++允許在同一範圍中宣告幾個功能類似的同名函式,但是這些同名函式的

形式引數

(指引數的個數或者型別或者型別順序)不同,域返回值無關

//引數的個數,引數的型別不同,型別順序不同, 與返回值無關

1.void go(int a)

2.void go(double a)//與1型別不同

3.void go(double a, int b)//與1,2引數個數不同

4.void go(int a, double b)//與3個數型別而且型別順序也不同

5.錯誤//*int go(double a)//引數與2相同不合法與返回值無關

void go(int a,int b)//與4的b的引數不同

上面1,2,3,5是合法的

c++獨有函式預設引數

1.明確函式引數從右向左進行處理

2.預設引數必須右邊,非預設引數必須左邊(預設引數之間不能有非預設引數,)(非預設引數之間不能有預設引數)

3.函式過載衝突的解決辦法:1.命名空間 2.用函式指標

(注意:函式指標不可以有預設引數,需要精確呼叫)

#include#include#include#include#include//預設引數必須放在右邊

//預設引數中間不允許出現不預設的

最後c++獨有的命名空間

輸出符 <<

命名空間 std

域控制符 ::

std::cout << "hello world";//輸出hello world

namespace應用場合

1.瀑布迭代式軟體開始

1.資料重名

2.避免**衝突       2.函式重名

3.類和結構體重名

關於避免**衝突的例項

#include "iostream"  

//最近檢視iostream時發現這個標頭檔案包含了namespace std;這個命名空間

#include"stdlib.h"

namespace myspace//自定義的命名空間

}namespace myspacea //自定義的命名空間

}::域操作符void main1()

另外namespace的例外,(命名空間匿名等價於命名空間預設為全域性變數

#include"iostream"

//沒有命名的命名空間可以直接呼叫

namespace

}void main3()

命名空間特性

1.自己可以定義命名空間

2.可以自己拓展命名空間實現迭代

3.命名空間可以實現別名

4.命名空間可以巢狀

5.命名空間預設都是共有的

6.命名空間內部不可以重名

7,命名空間不同,同名變數需要命名空間明確

#include namespace runrunrunrun  //命名乙個runrunrunrun的命名空間

}namespace runrunrunrun //命名空間的拓展

namespace r = runrunrunrun;//給命名空間起乙個別名

void main132()

//using namespace r;

void main11();}

//下面定義了2個函式,函式型別相同,一般不在命名空間內部定義函式,因為一旦這個空間需要改,那麼很麻煩

//我們可以在命名空間內部定義乙個函式指標實現介面封裝,這樣就易於維護

int add(int a, int b)

int addp(int a, int b)

struct mystruct

;void main1123()

7.命名空間不同,同名變數需要命名空間明確與using作用域

namespace mydata

namespace yourdata

using namespace mydata;//using必須在命名空間的後面,作用域,如果提前,會報錯

using namespace yourdata;

//using如果變數重名,會出現不明確錯誤,加上命名空間修飾符

void go()

//using namespace mydata;//作用域為從**開始到結束

void main()

c++獨有的auto自動變數1.自動獲取型別,泛型設計思想

2.c++11新語法實現自動迴圈一維陣列(迴圈必須是指標常量,陣列)

#include#include//自動變數,自動獲取型別,輸出,泛型

//自動變數,可以實現自動迴圈一維陣列

//自動迴圈的時候對應的必須是常量(如一維陣列的陣列名,或者2,3,4維的陣列名)

void mai1111n()

{ auto num = 10.9;//自動匹配型別

auto numa = 10/2.0;//在c中無法獲取auto的型別,c++可以

std::cout << num <

第一天筆記

ide integrated development environment 整合開發環境 常用開發環境有idle pythcharm wingide eclipse ipython 1.ctrl z 和回車 2.輸入quit 命令 3.直接關閉命令列視窗 ctrl c python中一切皆物件。物...

C 學習筆記 第一天

一 c 與.net framework的關係 二 net編譯過程 三 中間語言il il intermediate language 是微軟.net平台上衍生出的一門中間語言,net平台上的各種高階語言 如c vb,f 的編譯器會將各自的 轉化為il。其中包含了.net平台上的各種元素,如 范型 類...

Linux第一天筆記

1 linux指一套免費使用和自由傳播的類unix作業系統。linux一切皆檔案!2 fsf free software foundation 自由軟體聯盟 gnu gun s not unix general public license gpl 3 linux核心版本格式是x.y.zz www,...