C++笔记(4)——引用及结构体

引用

C++中有一个很方便的语法叫做引用,作用就是使得函数能够对传入的参数作出全局有效的改动。用法很简单,就是在传入参数的类型后面加上&就可以指明传入的参数是引用。

例子:

#include <stdio.h>

void change(int& x){
    x = 1;
}
int main(){
    int x = 10;
    change(x);
    printf("%d
", 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;
    }
}
本博客文章默认使用CC BY-SA 3.0协议。
原文地址:https://www.cnblogs.com/yejianying/p/cpp_notes_4.html