1、引用&
#include <stdio.h>void modify_pointer(int* &p1, int* q1)
{p1 = q1;
}int main()
{int* p = NULL;int i = 10;int* q = &i;modify_pointer(p, q);printf("after modify_pointer *p = %d\n", *p);//after modify_pointer *p = 10return 0;
}
在以上cpp代码中,&就是引用。
我们知道,在C语言的语法中,&叫做取地址符;但是在C++中,当&出现在函数形参的定义中,且与形参紧挨着,则&就叫做引用。
在此时不要将&理解为取地址符,引用和取地址符是两个不一样的东西,他们有不同的功能。
在以上代码形参变量p的定义中:
void modify_pointer(int* &p1, int* q1)
*指明了p1是一个指针变量,int指明了p1所要指向的对象的数据类型为整型,而&并不是对数据类型进行限制,而是作为标志标记p1。
&的作用是:让所标记的形参变量p1与作为实参的变量p产生数值上的动态关联,使得在子函数中修改所标记的形参变量p1的值时,会同步修改作为实参的变量p的值。
2、bool类型
C++语法中的数据类型,其实C语言在C99标准以后也有这个数据类型。
bool类型的变量只有两个值:true和false。
在C++语法中,true的实际值是1,false的实际值是0。