9.12.cpp包含了sqlist.cpp,等于你的程序里有了2个sqlist.cpp的内容
正确做法
.h文件里放入程序声明,用extern修饰
.cpp包含.h
不要包含.cpp
【相关推荐】
void exchange(int& a, int& b)
{
int temp =a;
a = b;
b=temp;
}
//如果不使用 引用类型 作为形参 则无法通过函数修改函数外部的变量的值。
int main()
{
int a;
int b;
cin >> a >>' ' >>b;
exchange(a,b);
cout << a\n <<b<<endl;
return 0;
}
5.2 引用 作为 返回值
int& fun()
{
int a = 687;
//注意 这里的a 是该函数内的 局部变量
return a;
}
int main()
{
int& b = fun();
//这里有警告,因为引用了 局部变量
cout << b <<endl;
//操作了 非法空间
return 0;
}
所以尽量不要引用局部变量
引用与指针的区别:
1.声明引用变量必须要初始化,指针不是必须初始化,当然我们一般int* p = NULL
2.引用初始化之后,就不能再引用其他空间了,就定死是这个变量的别名了。而指针的指向可以后期改变
3.引用不占用存储空间,指针占空间
4.引用效率更高,指针是间接操作
5.引用更安全,指针可以偏移
6.指针更灵活,直接操作地址,指针更通用:C语言和C++都行
总结 & 的三种作用:
1⃣️声明引用变量
2⃣️取地址
3⃣️数&数 ,表示位“与”运算
运算符一览
参考网址:https://www.runoob.com/cprogramming/c-operators.html
5.3增强的for循环
C++增强的点:
变量定义的位置可以在for(……)
📒VC和VS结构内的定义循环控制变量的作用域有区别:
VS(Visual Studio)中是仅针对该循环有意义
VC(Visual C++)是对下面的全部代码有作用
5.4 函数参数缺省值
函数的类型:1)无参数+无返回值
2)有参数+有返回值
3)有参数+无/有返回值;
其中3)1⃣️传值、传址
2⃣️参数缺省值/默认值
参数如何指定默认值?
一般形式:直接在形参后面用等号赋值即可
void fun(int a = 687,char c = 'A')
{
//如果不想全部赋值指定,也可以部分指定
cout << a << ' ' << c << endl;
}
部分🈯️定必须注意⚠️的规则是:
必须按照顺序“从右向左”连续指定(保证后面调用时传参位置不会错误),
不能间隔地一会指定一会不指定!
有默认值的函数调用时,可以不用传递实参
没有指定默认值的,一定要指定实参
(如果有默认值,还强制传参,会将原来的默认值覆盖)