1 C++的引用讲解
对于C++,首先新建源文件时,名字需要叫main.cpp,以cpp后缀结尾。
int a;
void modifynum(int &b)
{
b=b+1;
}
调用:modifynum(a)
int *p=NULL;
void modify_pointer(int *&p)
{
......
p=q;
......
}
调用:modify_pointer(p)
如上面两个例子所示,我们在修改函数外的某一变量时,使用了引用后,在子函数内的操作和函数外操作手法一致,这样编程效率较高,对于初学者理解也非常方便。
【例1.1】在子函数内修改主函数的普通变量(是C++代码,新建项目要建为C++项目)
#include <cstdio>
void modify_num(int &b)
{
b=b+1;
}
int main()
{
int a=10;
modify_num(a);
printf("after modify_num a=%d\n",a);
return 0;
}
【例1.2】在子函数内修改主函数的普通变量(纯C代码)
#include <cstdio>
void modify_num(int *b)
{
*b=*b+1;
}
int main()
{
int a=10;
modify_num(&a);
printf("after modify_num a=%d\n",a);
return 0;
}
【例1.3】子函数内修改主函数的一级指针变量(这是是重要的!)
#include <cstdio>
void modify_pointer(int* &p,int *q)
{
p=q;
}
int main()
{
int *p=NULL;
int i=10;
int *q=&i;
modify_pointer(p,q);
printf("after modify_pointer *p=%d\n",*p);
return 0;
}
上面的代码如果改为纯C,就需要使用到二级指针,因为对于考研初试是使用不到的,因此下面的代码不明白完全没关系,代码如下:
#include <cstdio>
void modify_pointer(int **p,int *q)//相对于C++这里是int **p;
{
*p=q;
}
int main()
{
int *p=NULL;
int i=10;
int *q=&i;
modify_pointer(&p,q);//相对于C++这里是&p
printf("after modify_pointer *p=%d\n",*p);
return 0;
}
2 C++的布尔类型
布尔类型在C语言没有,是C++的,有true和false。
【例】布尔类型也是有值的
#include <cstdio>
//设置布尔值的好处是提升了代码的可阅读性
int main(){
bool a=true;
bool b=false;
printf("a=%d,b=%d\n",a,b);
return 0;
}