C++筆記(4)——引用及結構體


引用

C++中有一個很方便的語法叫做引用,作用就是使得函數能夠對傳入的參數作出全局有效的改動。用法很簡單,就是在傳入參數的類型后面加上&就可以指明傳入的參數是引用。

例子:

#include <stdio.h>

void change(int& x){
    x = 1;
}
int main(){
    int x = 10;
    change(x);
    printf("%d\n", x);
    return 0;
}

輸出結果:1

補充一點:函數的參數名和實際傳入的參數名可以不同,例如可以是void change(int& x),而傳入的是a。同時,常量不可以使用引用,例如在剛剛的例子中傳入&a,這樣是不行的,因為地址本身不是一個變量,除非傳入int *p1 = &a的指針變量p1

結構體

定義的基本格式:

struct Name {
    // 一堆定義代碼
};

例子:

struct studentInfo {
    int id;
    char gender;
    char name[20];
    char major[20];
}Alice, stu[1000];

studentInfo就是結構體的名字,Alice就是結構體變量,stu[1000]就是結構體數組。結構體里面不能夠出現自身的數據類型(不然會循環定義)。

結構體的元素的訪問方法之類的基本的知識點就不提了,這些網上都有。這里想記一下的主要是構造函數。構造函數就是用來初始化結構體的函數,直接定義在結構體內。構造函數不需要寫返回類型,且函數名和結構體名相同。

例子:

struct studentInfo{
    int id;
    char gender;
// 下面這個就是構造函數!
    studentInfo(int _id, char _gender) {
        id = _id;
        gender = _gender;
    }
}

用法:

studentInfostu = studentInfo(10086, 'M');

注意,定義了構造函數則不能夠不經過初始化就定義結構體變量。如果需要不經過類似上面的初始化就可以定義變量,則要加上student(){}

struct studentInfo{
    int id;
    char gender;
    // 下面這行要添加上,這樣才可以不初始化就能夠定義結構體變量
    studentInfo(){}
    // 下面這個就是構造函數!
    studentInfo(int _id, char _gender) {
        id = _id;
        gender = _gender;
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM