在下面的代码中,一个指针指向它自己的内存地址。
#include <stdio.h>
int main()
{
void * ptr;
ptr = &ptr;
return 0;
}
如果指针能够指向它自己的内存地址,这有意义吗?
不,这没有意义。
如果你能找到变量 ptr,你可以直接执行 &ptr。
它会给你与 ptr 内容相同的结果。
而且,由于 ptr 只讲述了有关其自身的信息,因此无论如何它都是无用的。它不提供任何对程序的其余部分有意义的信息。
想一想,有一个例外。您可以使用 ptr == &ptr 作为一种特殊值,例如 NULL。所以,在这种情况下,我认为它很有用。
有趣的是,在这种情况下,值 &ptr 作为一个特殊值是有意义的,而作为某个东西的地址则没有意义,就像 NULL 一样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)