今見てくれてる人の数

ホンキートンク・スーダラブルース

ゆるコラム、oF、邦ロックや歌謡曲、小説の感想。ドラクエ、JavaScript、ドラゴンボール超など。湘南あたりを転がってる石コロのゆるゆる生きてく超雑多な軌跡です。

【openFramewoks】c++ 参照渡しとポインタ渡し備忘録 / oFで見かけるC++の謎たち

f:id:sudara_bluse:20171108184844p:plain

なんでポインタ使うのかはこちら

qiita.com

 

インライン関数やenumってなんぞやって方はまとめました。

oFで見かけるC++の謎たち · GitHub

使い分け方 C++の絵本(第2版より)

f:id:sudara_bluse:20171130105922j:plain

 

 

書き方メモ

// Person構造体
struct Person{
    char name[50];
    int age;
};

/* 値渡し(普段の) */
void printVal(Person person){
    cout << person.name << "さん" << person.age << "歳" << endl;
}

/* 参照渡し */
void printRef(Person &person){
    cout << person.name << "さん" << person.age << "歳" << endl;
}

/* アドレス渡し */
void printPtr(Person* person){
    cout << person->name << "さん" << person->age << "歳" << endl;
}

int main(){
    Person gakusei1 = {"mario", 33};
    printVal(gakusei1); // 価渡し
    printRef(gakusei1); // 参照渡し
    printPtr(&gakusei1); // アドレス渡し
    return 0;
}
    // 参照
    int cnt = 0;
    int &sansyouCnt = cnt;
    cnt = 200;

    cout << cnt << endl; //200
    cout << sansyouCnt << endl; //200


    // ポインタ
    int num = 10;
    int* ptr = &num;
    *ptr = 400;

    cout << ptr << endl; //0x7ffeefbff334
    cout << *ptr << endl; //400