zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    getfacl语法2
    getfacl
    setfacl语法2
    setfacl语法
    特殊权限语法2
    特殊权限语法
    vim语法
    locate语法
    find语法
    dos语法
  • 原文地址:https://www.cnblogs.com/chusiyong/p/11315663.html
Copyright © 2011-2022 走看看