《C Primer》讀書筆記 第6章 函式

2021-07-16 09:48:14 字數 1111 閱讀 7692

傳引用呼叫

void resrt(int &i)

int j = 42;

reset(j);//j採用傳引用呼叫,他的值被改變

cout << j << endl;//輸出0

陣列形參

void print(const int* a);

void print(const int a);

void print(const int a[10]);

儘管形式不同,但是是等價的,每個函式都有乙個const int*型別的形參

呼叫:

int i=0, j[2]=

print(&i);

print(j);

陣列引用形參

void print( int (&arr)[10] )//形參是陣列的引用,維度是型別的一部分

呼叫:

int i=0, j[2]=

int k[10] =

print(&i);//錯誤:實參不是含義10個整數的陣列

print(j);//錯誤:實參不是含義10個整數的陣列

print(k);//正確:實參是含義10個整數的陣列

傳遞多維陣列

void print(int (*matrix)[10], int rowsize) {}//將matrix宣告為指向含有10個整數的陣列的指標

void print(int matrix[10], int rowsize) {}//和上面等價

省略符形參:為了便於c++程式訪問某些特殊的c**而設定的,這些**使用了名為varargs的c標準庫功能。

省略符形參智慧型出現在行參列表的最後乙個位置,它的形式無外乎以下兩種:

void foo(para_list, …);

void foo(…);

返回型別和return語句

無返回值函式return;

有返回值函式return expression;

預設實參

string screen(int ht=24, int wid=80, char backgrnd = 』 『);

呼叫:string s = screen(1,2)//第三個引數被預設引數代替

c primer 讀書筆記6

else 用,操作符改寫為一行。std cout total std endl,total trans switch.case中,case標號必須是整型常量表示式。switch內部變數定義 只能在最後乙個標號或default標號後面定義變數。四種除錯中非常有用的常量 file 檔名 line 當前行...

《C Primer》讀書筆記(6)

1.類的預設建構函式只是在類沒有定義建構函式的時候才自動加上去的,而如果定義了乙個建構函式,則不會新增預設建構函式了。此時如果還想要預設建構函式,需要自己寫乙個預設建構函式。2.友元函式和友元類 include stdafx.h include using namespace std class a...

《c primer》讀書筆記6

筆記範圍 2.3節 早在 2.1裡作者就留給我們乙個問題 要成為 c 的一等公民需要那些條件 練習 2.2 個人認為這個問題非常重要。它直接關係到我們對類的設計思想和努力的方向,顯然我們的方向該是 盡可能的讓我們設計的類成為語言的一等公民,換句話說,在類的設計中,對於運算子的支援要比一般的成員函式更...