補充資料
變數可視範圍(Scope)
#include<bits/stdc++.h>
using namespace std;
int number = 0;
void func(int number){
cout<<"func(): "<<number<<endl;
cout<<"global: "<<::number<<endl;
}
int main(){
int number = 10;
cout<<"main(): "<<number<<endl;
cout<<"global: "<<::number<<endl;
func(20);
}
常用的變數名稱可以怎樣命名:
- 數字:number 縮寫為 num
- 計次:count 可縮寫為 cnt
- 長度:length 可縮寫成 len
- 距離:distance 縮寫為 dist
- 當下的那個:可以用now或current
call by value、address、reference
解說:https://lihan.cc/2013/10/81/
以下程式碼的每個function都試圖將傳入的值+1,但call by value是無法改變main傳進來的值。
#include<iostream>
using namespace std;
void callByValue(int v){
v++;
}
void callByAddress(int *v)
{
// v是address,*v是該address存的值
(*v)++;
}
void callByReference(int &v){
v++;
}
int main()
{
// call by value
int cv = 5;
callByValue(cv);
cout <<"call by value 的結果:"<<cv<<endl;
// call by address
int ca = 5;
callByAddress(&ca); //對 ve 取址,傳過去的是類似 0x3E68 這樣的位址
cout <<"call by address 的結果:"<<ca<<endl;
// call by reference
int cr = 5;
callByReference(cr);
cout <<"call by reference 的結果:"<<cr<<endl;
}