整数指针(实际上是任何指针类型)的特别之处在于您可以为它们分配 NULL
非整数类型的值;而整数无论如何都必须存储一个整数,无论是正整数还是负整数(如果我错了请纠正我),并且没有非整数值。
然后,您能否利用指针的这种“特殊”特性(作为可以存储整数和非整数值的变量:NULL
)同时存储整数值(通过它们的字面实际值,而不是地址,它将存储一个有符号/无符号整数)并且是一种 boolean
- 其中 NULL pointer
表示false
和一个有效指针
(即保存整数的指针)(但不是真正有效的 ofc,只是一个不是 NULL
的指针)将表示 true
。
注意:指针绝不会用于访问内存位置,只是用于存储一个 int。
(Ofc 这只是针对特定用例,并不是说您会在常规代码中执行此操作)
(如果你真的想知道)我正在尝试制作一个递归函数,并希望函数的返回值返回一个整数,但也想跟踪一个条件,所以我也希望它返回一个 boolean 值,但你显然只能返回一个参数......所以可以传递一个整数指针,一个可以同时执行这两个操作的变量,作为解决方案吗?
我想到了其他方法(结构、数组..),但很好奇使用整数指针是否是一种合理的方法。
最佳答案
关于 NULL,指针没有什么特别之处。在不以 8086 实模式运行的基于现代 Intel 的实现中,指针只是一个无符号整数,NULL 为 0。您不能以这种方式存储“额外”的东西。
如果您需要从函数返回两个值,请创建一个包含 int
和 bool
的结构,并让您的函数返回它。
关于c - 是否可以将有符号整数存储在整数指针 (int *) 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51580780/