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++语法小记---如何判断一个变量是不是指针的主要内容,如果未能解决你的问题,请参考以下文章

Java学习小记 4

C++判断,比较类型的几种方法

C++如何判断两个对象是不是是同一个对象?判断两个对象的地址可以吗?

c++基础(lambda)

C++虚函数表小记

C++语法小记---经典问题之一(一个空类包含什么)