c语言如何判断一个变量是不是指针

c语言如何判断一个变量是不是指针,因为用stm32太多宏有些地方想自己定义,但每次判断类型都要找好久

你直接给那个变量解引用,比如变量位 ptr ,直接打印*ptr,看结果如何:如果是指针,那么结果应该是一个值或者其他变量地址,如果打印的时候报错,那么大概率不是指针

如果你说的是写代码时候的判断,稍微好点的编辑器就能提示你。
但如果你说的是运行时判断,那么,没办法,因为能编译通过,肯定是你做了强制类型转换。

C语言真的很难实现,C++倒是可以很容易地实现

c语言中没有判断变量类型的函数,可以使用sizeof来判断存储空间大小,按存储占用空间来大致区分,实现有难度。


可以看下c语言参考手册中的 c语言-指针

判断一个整数是不是不整数,你要看他的变量类型,比如说 int a;我们可以断言他是一个整数变量,为什么这么肯定呢?因为它前面有一个类型是int,所以告诉我们他是一个整形变量