C++语法小记---如何判断一个变量是不是指针
Posted chusiyong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++语法小记---如何判断一个变量是不是指针相关的知识,希望对你有一定的参考价值。
如何判断一个变量是不是指针?
- 思路:模板函数 + 可变参数 + sizeof(函数)
1 #include <iostream> 2 #include <string> 3 4 using namespace std; 5 6 template<typename T> 7 char IsPtr(T* p) 8 9 return ‘c‘; 10 11 12 int IsPtr(...) 13 14 return 0; 15 16 17 #define ISPTR(p) (sizeof(IsPtr(p)) == sizeof(char)) 18 /* 19 使用sizeof的原因是:可变参数是C语言的概念,对类对象不能进行处理,如果是类指针就会出现段错误 20 所以使用sizeof,根据返回值类型判断,因为调用那个函数是在编译期就确定的 21 */ 22 int main() 23 24 int* p = NULL; 25 int q = 0; 26 27 cout << "ISPTR(p) = " << ISPTR(p) <<endl; 28 cout << "ISPTR(q) = " << ISPTR(q) <<endl; 29 30 return 0; 31
以上是关于C++语法小记---如何判断一个变量是不是指针的主要内容,如果未能解决你的问题,请参考以下文章