在C++中,void表示无类型,主要有三个类型:
函数的返回值用void,表示函数没有返回值。
void func(int a , int b)
{
//函数代码
return;
}
函数的参数填void,表示函数不需要参数,或者让函数参数空着
int func(void)
{
//函数体代码
return 0;
}
重点:函数的形参用void*,表示接受任意数据类型的指针。
注意:
不能用void申明变量,他不能代表一个真实的变量。例如声明void a是错误的。
不能对void*指针直接解引用(需要转化成其他类型的指针)。
void *p;用*p是错误的,应该转换为具体类型*(char*)p
把其他类型的指针赋值给void*指针不需要转换。
把void*指针赋值给其他类型需要转换。
#include <iostream>
using namespace std;
//只关心地址本身,不关心里面的内容,用void*可以存放任意类型的地址。
//
//显示变量的十六进制地址的函数:varname-变量名,addr-变量的地址。
void func(string varname, void* p)//如果用其他确切的指针类型比如int*,类型不一致时 会报错,需要在填写实参时强制类型转换
{
cout << varname << "的地址是:" << p << endl;
}
int main()
{
//1)显示变量的16进制地址
int a;
char b;
cout << "a的地址是:" << &a << endl;
cout << "b的地址是:" << &b << endl;
func("a", &a);
func("b", &b);
return 0;
}