c primer 函式傳值1

2021-09-06 18:31:02 字數 981 閱讀 1787

不看c++ primer  永遠不知道自己基礎有多差

函式的引數傳值一般有兩種方式:值傳遞,引用傳遞。

值傳遞有以下兩種形式:

void func( int a )

void func1( int *a )

對於 func 和func1都是通過拷貝記憶體來實現的

func1

int m = 10 ;

func1( int *a ) ;

//處理過程為: a = &m ;

//然後通過指標 *a 對 m進行間接操作

傳引用

void func2( int &a )

引用就是變數的乙個別名,不會發生記憶體的拷貝

典型的面試題:

void getmemory1(char *p)

void test1(void)

// p = str;

// p = malloc(...);

//p和str有半毛線關係?

char *getmemory2(void)

void test2(void)

char *getmemory3(void)

void test3(void)

//test3 中列印hello world,由於返回常量區,並且並沒有被改動過。test2中不一定能列印出hello world,由於指向的是棧。

void getmemory4(char **p, int num)

void test4(void)

//記憶體沒釋放

void test5(void)

}//str為野指標,列印的結果不得而知

void test6()

}//vc斷言失敗,執行錯誤

函式傳值傳參

var obj function x 內部宣告的變數不會影響外面的obj物件 console.log obj.n 2 obj 傳入的是乙個指標 值 x是obj指標的副本,兩者都指向同乙個物件 console.log obj.n 3 例子二 var x 1 function a x a x conso...

函式的傳值

函式在我看來最主要在於函式引數的傳遞,其餘的與正常程式設計無太大差別 函式引數傳值方式 1.傳數值 2.傳位址 3.引用 引用 型別名 引用名 變數名 相當於乙個變數的別名 int n 4 int r n 在宣告變數語句中作為引用 r 4 coutcout 引用例子 void swap int a,...

函式的傳值與傳址

這裡介紹一下,函式引數傳遞方式 傳值與傳址.希望看過後,大家對函式的了解更深刻.一 傳址方式 傳址方式是通過引用來實現在。還是我的習慣,用事實說話。看下面例子。例1 程式開始 fun1 int a,int b 這裡告訴編譯器,這個函式是傳址的,不是傳值的,所以所引用的引數在函式退出後值會改變 inc...