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。