//如何判定一个变量是指针还是非指针
#include <iostream>
using namespace std;
template<typename T>
void isPtr(T*)
{
cout << "void isPtr(T*)" << endl;
}
void isPtr(...)
{
cout << "void isPtr(...)" << endl;
}
int main()
{
int i = 0;
char j = 0;
int* pi = NULL;
float* pf = NULL;
isPtr(i);
isPtr(j);
isPtr(pi);
isPtr(pf);
return 0;
}
//如何gaoxiao判定一个变量是指针还是非指针
#include <iostream>
using namespace std;
template<typename T>
char isPtr(T*);
int isPtr(...);
#define ISPTR(v) (sizeof(isPtr(v))==sizeof(char))
int main()
{
int i = 0;
char j = 0;
int* pi = NULL;
float* pf = NULL;
cout << ISPTR(i) << endl;
cout << ISPTR(j) << endl;
cout << ISPTR(pi) << endl;
cout << ISPTR(pf) << endl;
cout << ISPTR(0.5) << endl;
cout << ISPTR("Hello!") << endl;
return 0;
}