msc*_*msc 4 c pointers memory-address
在以下代码中,指针指向其自己的内存地址.
#include <stdio.h>
int main()
{
void * ptr;
ptr = &ptr;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果指针能够指向自己的内存地址,那会有意义吗?
不,这没有意义.如果你能找到变量ptr,你可以做&ptr.它会给你与ptr的内容相同的结果.
此外,由于ptr只讲述自己的一些事情,无论如何它都是无用的.它不会为您的其他程序提供任何有意义的信息.
想想看,有一个例外.您可以使用ptr ==&ptr作为一种特殊值的情况,如NULL.所以,在这种情况下,我认为它很有用.
它的乐趣在于,在这种情况下,值&ptr作为一个特殊值是有意义的,而它作为某些东西的地址没有意义,就像NULL一样.