c - C指针的 "**&ptr"和 "2**ptr"是什么意思?

标签 c pointers reference dereference

我是C新手,我需要通过下面的代码来理解屏幕上打印的每个值的含义:

#include<stdio.h>

int main() 
{
     int x = 10;
     int *ptr = &x;
     printf("%d %d %d\n", *ptr,**&ptr, 2**ptr);
     return 0;
}

输出(海合会):

10 10 20

在这里,我声明了变量xptr 指向x 变量。因此,*ptr 打印了 x 的值。但是我看不懂**&ptr2**ptr的值。

提前致谢。

最佳答案

这里,*&操作符相继使用时相互抵消。

**&ptr*ptr 相同,这里,ptr 保存x 变量的地址.因此,在此处打印 x 的值。

2**ptr 被解释为 2 * (*ptr)。所以,2 * (10) 等于 20

关于c - C指针的 "**&ptr"和 "2**ptr"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46987575/

相关文章:

c - 从 C 矩阵到现代 OpenGL 中的纹理?

C: int string 接受所有值,但只有一个?

c - 在将指针传递给外部库方法后释放内存时 RtlFreeHeap 无效地址

c++ - 关于多态性,引用和指针是否相等?

c - Net-SNMP API 引用?

c - Ext2 - 文件是如何创建的

有人可以向我解释这段代码吗?

pointers - 如何将* uint64和* uint32数据类型转换为int数据类型?

c++ - 动态更改数组的大小并读取值。 (不带 vector )

python - 我如何在 python 中执行相当于转换为 int 的操作