指针正在复制内存地址而不是值

时间:2016-01-09 01:14:32

标签: c pointers int

printf("variable = %d\n\n",*variable);
*variable=j;
printf("j= %d",j);

我的代码中有一点如果我打印出变量,指针指向它打印正确的数字,但当我尝试将其复制到另一个变量(在这种情况下为j)时,它给了我一个完全不同的变量(我假设它是一个内存地址,因为它在我编辑程序时会改变)但是。我做错了什么?

1 个答案:

答案 0 :(得分:4)

您要将j分配给*variable,而不是另一种方式,请尝试这样

j = *variable;
  

我认为它是一个内存地址,因为它在我编辑程序时会发生变化

这不是一个内存地址,当你试图打印它时,似乎j是未初始化的,在这种情况下,你看到的打印确实是不确定的,它被称为垃圾,它可以是任何东西,它可以改变时你也改变了程序。在这种情况下,行为也是 undefined ,因此在未初始化的情况下进一步使用j可能会使整个程序以未定义的方式运行。