我有以下的C程序:
int main()
{
int i = 5;
printf("Simple value of i = %d", i);
printf("\nPointer value of i = %d", *(&i));
return 0;
}
两个printf()
都会打印相同的东西,即5。据我理解,&
用于地址值,*
用于获取该地址上的值。
我的问题是:如果可以通过简单的i
变量实现相同的效果,为什么我们需要*(&i)
呢?
operator*
可以被重载。 - Konrad Rudolph