[讨论]取地址和取内容时遇到的问题
初学C语言,主要是看书然后将例子试一遍。在“运算符—一元变换”那里遇到了问题原例子是这样:
main()
{
int m,count=100;
m=&count;
printf("%d\n",m);
}
调试时显示 错误 temp.c 5: 非可移动指针转换 在函数 (这里的错误是什么原因造成的?)
于是我改了一下
main()
{
int *m,count=100;
m=&count;
printf("%d,%d\n",*m,m);
printf("%d,%d\n",m,*m);
printf("%d,%d\n",*m,m);
}
调试正常,不过运行时的结果很奇怪
第一行输出 100,4060。这一行应该没问题,前面是count的内容,后面是count的地址
第二行输出 4060,5023。 这就让我搞不懂了?为什么会出现这种结果?
第三行还是 100,4060。也就是说只有 m在*m之前输出时会产生问题。怪哉。
调试环境是mytc5.4.1