微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – 为什么在初始化指向整数的指针时在整数变量之前使用“&”?

我目前正在学习C中的指针.我对指针的初始化感到困惑.我可能会问一些愚蠢的问题,但我只想确保理解并正确地学习.

所以,要初始化一个指针:

int a = 3;
int *pointer = &a;
*pointer = 10;

要么

int a = 3;
int *pointer;
pointer = &a;
*pointer = 10;

到目前为止,我知道“*”声明了一个指针类型.

* pointer是指针指向的地址中任何值的值.

&安培;是某事物的记忆地址.

在第二种情况下,我可以理解’pointer =& a’.

但是,为什么我们在上面的第一种情况下设置* pointer =& a,因为* pointer表示该地址中的值?

为什么我们在初始化指针时使该指针中的值等于第一种情况下变量的地址?

解决方法

令人困惑的是,*指针= 10中的星号和int *指针中的星号=& a意味着两个不同的东西.

> * pointer = 10取消引用变量指针并将值10赋给取消引用操作的结果.> int * pointer =& a声明变量指针为int *类型,并使用值& a初始化它.这里没有解除引用.星号在这里提醒您,当解除引用指针时,您将得到一个int.换句话说,这声明指针使*指针为int.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐