首页 > 解决方案 > *(&i) 在没有指针指向的情况下如何在 c 中解除引用?

问题描述

#include<stdio.h>

void main()
{
    int a=10;
    printf("%d\n",a);
    printf("%d\n",*(&a));
}

由于变量 'a' 是整数类型,而不是指向自身的变量指针,因此取消引用在这里是如何工作的。我可能理解错了。

标签: cpointersdereference

解决方案


对于一元&*运算符的性质:

一元运算&符产生其操作数的地址

一元运算*符表示间接。如果操作数指向一个函数,则结果是一个函数指示符;如果它指向一个对象,则结果是一个指定该对象的左值。如果操作数的类型为“pointer to type”,则结果的类型为“type”。

在你的情况下

*(&a)

是相同的

* (pointer to object 'a') or, * (address of variable 'a')

这与

 a

所以这

 printf("%d\n",*(&a));

类似于

printf("%d\n",a);

推荐阅读