補充資料

變數可視範圍(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;
}

results matching ""

    No results matching ""