#include <iostream>
#define USINGSTD(x) using std::x;
USINGSTD(cout)
USINGSTD(endl)
int* pFUNC() {
cout << "this is a func";
return 0;
};
int main() {
int a[] = {1,2};
cout << a<<" "<<&a; // 00AAF998 00AAF99800B812F8 a和&a的不一样,我还可以理解..
cout<<*pFUNC<<endl; // 00B012F8
cout << pFUNC<<endl; // 00B012F8
cout << &pFUNC<<endl; //00B012F8 这三个是一个地址,我是万万没想到
}
//这个道理出现在函数指针里
int functionA(int,int);
int main() {
int ((*p)(int,int)) ;
p = functionA;
//这里不像常规的我们认为要加 & ,而是名字直接进去
//p是 int(*)(int,int)类型,functionA是int(*)(int,int)类型
//必须深入理解这点 什么是类型 什么是变量名,要多看看ISO的标准前面的那部分
std::cout << ((*p)(1, 2));//3
std::cout << (p(1, 2));//3
//函数值和指针区分不明显
}
int functionA(int A,int B) {
return A + B;
}