第四次複習

2021-10-01 15:10:42 字數 3541 閱讀 8467

1.關於if

if/if else /else

判斷語句中最常見的不贅述

2.標頭檔案cctype中常用函式

3.?運算子

a >b ? 10 : 12 ; // 若為true則返回10,反之則返回12

int c = a>b? 10 : 12 ;

關於switch case 接受的引數(變數)

只接受整形常量或者char型別值!

char a ;

cin>>a ;

switch (a)

7.char 陣列接受int值

char ab[10] ;

cin.get(ab,10);

for(auto x:ab )

cout《輸入3422341

輸出3422341

只能接受單數字且不能有空格

8.檔案的i/o

標頭檔案17章會提到

9.函式初探

函式模板

void a(void){};

第乙個為返回型別,第二個型別為引數型別

int a ; //不給引數的陣列__沒意義

int a //一般這樣c++11 初始化列表法

10.陣列優化

使用指標來定位往往更效率

11.有關const賦值

11.1 const 指標可以賦給const變數,非const變數

11.2非const指標不可以賦給const變數

以上指標皆為解引用之後賦值的

11.3 非const指標不可以賦給const指標

這裡指指標關係

char blue = 'a' ;

char*pr =&blue ;

const char* pt ;

const char**pk ;

pt = pr ; //成功把blue的位址賦給const 型別的pt

pk = pr ; //雙層間接關係 ,編譯失敗

11.4const 指標永遠不能賦給非const指標

char blue = 'a' ;

char*pr =&blue ;

const char* pt ;

pt = pr ;//合法,非const給const

char*po ;

po = pt ; //編譯失敗

const char**pk = *pt ; //編譯失敗,不能這麼賦值留個疑問

po = pk ;//報錯

11.5const 的位置 :只談定義變數時

int b = 10;

int c = 11;

const int* a = &b ;

*a = 11 ; // 錯誤,向唯讀位置賦值

a=&c;//valid

const放到後面時

int b = 10;

int c = 11;

int* const a = &b ;

*a = 11 ; // valid

a=&c; //錯誤,向唯讀位置賦位址

沒什麼好總結的

12.用函式傳遞二位陣列或者指標陣列

兩個模板:

double a(double*(arrs)[4],size) ;

double a(double arrs[4][4] ) ;

簡單講就是操作位址,甚至可以是函式指標

13.eof判斷放入while語句中會自動判斷

14將結構體放入函式

因為結構相當於預設公有成員的類,所以結構體可以使用構造

函式呼叫結構體

void sum (apt1 ,apt2 )

呼叫的時候只要用->符號就好了

15.後置

string 容器 ·array 容器 · 遞迴

關於遞迴和容器我在煉表裡寫的很詳細,函式也能遞迴,差不多吧

16.函式指標

就簡單說明一下不做深究,stl模組也有

定義:void a (int lines ,double(*pf)(int) ;

呼叫:a(num,pk) //pk為乙個函式

說明:double指的是呼叫函式返回值,(*pf)取了即將呼叫函式的指標,(int) 指的是呼叫函式的引數型別

17.用auto進行自動型別推斷

18.typedef進行形式化簡

用法:typedef int a ; //後面語句複雜的時候可以用

19.內聯與巨集及其弊端

這裡指的都是函式,當然也可以直接define a 10 ;來定義常量

define square (x) x*x  // 定義了乙個巨集函式,獨特的不同於函式的定義方法

//此巨集函式存在的弊端(但不是所有都出錯):

double a = square(4.5+7.5);

//輸出是

a=4.5+7.5*4.5+7.5

//而不是

a=(4.5+7.5)^2

這可以進行改進:define square (x) ((x)*(x)) 必須加括號否則有歧義

//內聯函式

inline double a (double) ; // 普通函式加個inline

另外,關於函式體內聯和巨集,**塊必須要簡單,內聯中不能使用switch case 語句 , 也不能使用for 迴圈, 內聯的作用是把**塊放入呼叫函式中執行,為了加快執行效率,巨集則相當於定義東西。

20.關於引用

int b = 10 ;

int &a = b; //引用b的值,這裡的a相當於b,與b共位址

void a (int& , int&) ;//放入函式

a(b+10);//非法,不能給右值,但可以強制

@後面還講到了右值引用,打破了限制

@可以引用結構

@函式也可以返回引用型別的值

@不能返回區域性變數,但是可以返回區域性變數的副本

@可以通過操作指標來把定義的變數返回前提是**塊結束之後記憶體沒有被釋放

注意!返回型別(函式名之前的東西)必須和return的型別相匹配

有點小疑問

string 和 char* 型別之間會自動轉換

21.引用在i/o中的應用

詳見18章的整理吧

第四次作業

扎ogu 典型產品 最高傳輸速率 ieee 802.11a wi fi5 802.11a 43m 450 zyxel p334u 54mbps 1500 zyxel p335u 54mbps 1600 ieee 802.11b d link di 624 a 54mbps 215 linksys w...

第四次作業

作業題一 vs2012 rc在介面上,比beta版更容易使用,彩色的圖示和按照開發 執行 除錯等環境區分的顏色方案讓人愛不釋手。vs2012整合了asp.net mvc 4,全面支援移動和html5,wf 4.5相比wf 4,更加成熟,期待已久的狀態極工作流回來了,更棒的是,現在它的設計器已經支援c...

第四次作業

專案一求1000以內所有偶數的和 includevoid main cout sum includevoid main while i 1000 cout sum includeint main while i 1001 cout 專案3 乘法口訣表 程式設計序,輸出乙個乘法口訣表,形如 1x1 1...