C中“* x = 1”和“x = 1”有什么区别?

时间:2015-09-16 01:35:01

标签: c pointers

我是C的新手。我来自Java背景,我很难理解指针。我理解*x = 1取x的内存地址并将其赋值为1,其中x = 1表示将变量x赋值为1。

我说错了吗?

4 个答案:

答案 0 :(得分:2)

好吧,正如所写,你完全倒退了,因为你说的是​​将x分配给值等等。

x = 1表示将值1存储到变量x。

* x = 1表示将值1存储在内存地址x指向。

答案 1 :(得分:0)

*x = 1; 

表示x包含一个内存地址,为该内存地址分配1。

x = 1;

表示将1赋值给变量x。

答案 2 :(得分:0)

x = VARIABLE

* x =地址指示

答案 3 :(得分:0)

x=1表示您直接将值 1 分配到 x *x=1的方法有点不同。

说,int y = 10 x 是一个指针,通过定义int *x = &y 指向y 的地址。声明*x后,在整个计划中,*x将被视为地址y 的值。因此,当使用*x=1时, y 地址的值(之前为10)将立即更改为 1 。因此,y=1*x=1在内部做同样的事情。

您可以按照this link详细了解有关C指针的详细信息。