我是C的新手。我来自Java背景,我很难理解指针。我理解*x = 1
取x的内存地址并将其赋值为1,其中x = 1
表示将变量x赋值为1。
我说错了吗?
答案 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指针的详细信息。