指针名称---地址---值
---------A--------- 1111------2222
---------B---------2222------3333
---------C--------- 3333------4444
---------D--------- 4444------停止
这里 *A 应等于 B,
这里*B应该等于C,
这里*C应该等于D,
我应该为 D 的值输入什么来指示列表的停止?输入0有危险吗?
最佳答案
uintptr_t
是整数类型。它的意思是“无论大小的整数都足以容纳指针的位”。因此,如果 p
指向某个内容,(uintptr_t *)(p)
是指向整数的同一地址,而 GET(p)
因此是它指向的整数。 NULL
是指针类型,因此您尝试将其分配给整数,这是不允许的。
将其赋值为 0 是允许的,但我不确定这是否是您想要的,因为您暗示您想要将指针清空,而赋值 0 将使指针指向整数 0,而不改变指针本身。
我怀疑您根本不需要所有的转换,但您实际上只想处理指针。但是如果没有看到其余代码,我就无法知道您要做什么。
关于c - C 中指针值 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26768703/