InitList(&L)与InitList(L)的区别

img

问题一:InitList(&L)与InitList(L)的区别
问题二:i,j,k不需要定义吗

举个最简单的例子:

#include <iostream>

using namespace std;

void fun1(int i)
{
    i = 1999;
}

void fun2(int &i)
{
    i = 2019;
}

int main()
{
    int data = 2021;

    fun1(data);
    cout << data << endl;

    fun2(data);
    cout << data << endl;

    return 0;
}

在这个例子里面, fun1() 并没有改变 main()data 的值,所以第一个输出还是2021,然后 fun2() 改变了 main()data 的值,使他变成了2019。还有一点就是只有在C++中才有引用( & ),C语言是没有引用的。

在数据结构这门课程里面,许多地方写的比较简略,比如变量的声明,但是无论是C还是C++,变量在使用前必须先得声明,当然也有一些语言(比如Python)可以直接使用而无需声明。

没有&的话,只是传值,就比如说L1=1,然后传值给L2,那么L2也会等于1,但是L1和L2不是同一个东西。有&的话就是引用,L2和L1是相同的一个东西。
ijk肯定需要定义囖,不用怀疑自己。