zoukankan      html  css  js  c++  java
  • 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协议。
  • 相关阅读:
    tryparse的用法,^0*[1-9]d*$
    寻找指定的进程然后杀死的代码写法
    P2421 [NOI2002]荒岛野人
    P2568 GCD
    P1445 [Violet]樱花
    P3119 [USACO15JAN]草鉴定Grass Cownoisseur
    P1314 聪明的质监员
    P3811 【模板】乘法逆元
    P3943 星空
    P3225 [HNOI2012]矿场搭建
  • 原文地址:https://www.cnblogs.com/yejianying/p/cpp_notes_4.html
Copyright © 2011-2022 走看看