c - *(&i) 在没有指针指向的情况下如何在 c 中解除引用?
问题描述
#include<stdio.h>
void main()
{
int a=10;
printf("%d\n",a);
printf("%d\n",*(&a));
}
由于变量 'a' 是整数类型,而不是指向自身的变量指针,因此取消引用在这里是如何工作的。我可能理解错了。
解决方案
对于一元&
和*
运算符的性质:
一元运算
&
符产生其操作数的地址
和
一元运算
*
符表示间接。如果操作数指向一个函数,则结果是一个函数指示符;如果它指向一个对象,则结果是一个指定该对象的左值。如果操作数的类型为“pointer to type”,则结果的类型为“type”。
在你的情况下
*(&a)
是相同的
* (pointer to object 'a') or, * (address of variable 'a')
这与
a
所以这
printf("%d\n",*(&a));
类似于
printf("%d\n",a);
推荐阅读
- python - 无法在 MACOS 中安装 VS Python
- javascript - 如何获取日期范围之间的客户列表?
- ruby-on-rails - 我需要将 'jonathan-morón-16394669' 转换为 'jonathan-mor%C3%B3n-16394669'
- azure-data-factory - 如何在 Azure 数据工厂的 ForEach 中传递值?
- firebase - 使用自定义对象将 Firebase 中的地图数据检索到 Flutter
- reactjs - 如果没有错误的钩子调用或未定义的窗口,Next.js 无法获取窗口大小?
- firebase - 部署到 Firebase 函数时会发生哪些步骤?
- for-loop - 读取文件夹中的多个 xlsx 文件并将文件名添加到 Python 中的每一列
- data-structures - 合并两个排序的链表空指针和输入仅适用于一个实例
- c++ - 如何在 C++ 11 的参数列表中使用 auto 关键字?