引用
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;
}
}
