函式在我看來最主要在於函式引數的傳遞,其餘的與正常程式設計無太大差別
函式引數傳值方式:
1.傳數值
2.傳位址
3.引用
引用:型別名 &引用名=變數名
相當於乙個變數的別名
int n=4;
int &r=n; //&在宣告變數語句中作為引用
r=4;
coutcout<
引用例子
void swap(int &a,int &b) //此處形參為引用
int tmp;
tmp=a;
a=b;
b=tmp;
int main()
int n1,n2;
cin>>n1>>n2;
swap(n1,n2);
cout<
指標變數
內容為位址,指向位址存放的變數為目標變數。
定義方法
型別識別符號 *變數名;
int i; //此時系統分配位址儲存i
&i; //&在正常語句中為取址符
int *i_point,*j_point; //定義方法,*為定義指標
int *i_point=&i; //定義並賦初值的簡單方法(比較方便)
*i_point=3; //*為取內容運算
指標變數的值一定為位址,位址內的目標變數一定與型別識別符號相同。(與不同變數所佔位元組有關)
絕對不能對未賦值的指標變數作「取內容」運算。(此時指標變數內位址隨機,可能損害記憶體)
對指標變數取內容運算對值的修改會影響目標變數的值,如:
int i,*p;
p=&i;
*p=10;
cout<
分清取位址,取內容,定義指標,引用,即可對指標變數、引用熟練操作。
指標運算
int a[4];int *p=a;p++; //此時指標p為陣列a首位址也就是a[0]的位址
//p++相當於p指向的位址先後加相應型別大小的空間之後的位置
//要求p++之後的位址與定義時變數型別相同
指標與陣列
int a[4];
int *p=a;
指標傳遞函式引數
void swap(int *p1,int *p2)
函式傳值傳參
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 程式開始 fun1 int a,int b 這裡告訴編譯器,這個函式是傳址的,不是傳值的,所以所引用的引數在函式退出後值會改變 inc...
函式的引數傳值
函式的引數傳值主要分為 傳值引數,傳引用引數。1.傳值引數 當初始化乙個費引用型別的變數時,初始值被拷貝給變數。此時,對變數的改動不會改變和影響初值。int a 1 int b 2 swap a,b 則不能交換他們的值。但當時指標傳值時 指標傳值的行為和非引用型別傳值一樣,當執行指標拷貝時,拷貝的是...