关于int()和int型指针
#include <iostream>
using namespace std;
int f(int*)
{
}
int main(){
int *a=0;
a=int();
return 0;
}
以上程序编译通过了,想问一下int()为什么是int型的指针
还有函数的参数为什么可以是这个样子 int f(int*) ?
[解决办法]
int()是创建一个0初始化的int型临时变量,也就是0,指针可以赋值为0
函数形参如果函数内没有用到可以省略变量名,还用声明时也可以省略
[解决办法]
int()不是个指针,就是一个int值,你可以把它看作int的"default ctor",它是0。你相当于把一个int值0赋予了指针a
int* a = 0;
这没什么问题。
int f( int * ) {}
定义的时候省略了形参名称,这也没什么问题,C++允许这样。代价就是你无法在这个scope里面使用这个参数了。