当前位置:  开发笔记 > 编程语言 > 正文

为指针分配地址

如何解决《为指针分配地址》经验,为你挑选了1个好方法。

我想知道是否有其他方法可以为指针分配指向其值的地址.例如,通常的方法是:

int a = 10;
int *ptr;
ptr = &a;

但在某些地方,我看到它宣称:

int *ptr = &a;

这两种方式都是等价的吗?我有点困惑,因为我一直认为*ptr给出a的,而不是地址.有人可以解释一下吗?谢谢.



1> artm..:

我有点困惑,因为我一直认为*ptr给出的价值a,而不是地址.

它确实有点令人困惑,因为*它用于声明指针,也用作解引用运算符.实际含义*取决于上下文 - 是否用于声明,初始化或赋值.

值得了解1)声明,2)初始化和3)赋值之间的区别.

int *ptr; // 1) this is declaration without initialisation.

int *ptr = &a; // 2) this is declaration **and** initialisation (initialise ptr to the address of variable a)

int b = 10;
*ptr = b;   // 3) this is assignment, assign what pointed by ptr to value of variable b.

1)作为指针的*手段(但它尚未指向任何有效位置).ptrint

在2)的*该装置ptr是一个指向int,并且其初始值是可变的地址a.

在3)中*是取消引用运算符,即指定ptr变量值指向的内容b.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有