学过c的进来看看!

来源:百度知道 编辑:UC知道 时间:2024/05/31 23:51:36
main()
{
char *p;
p=0x2000;
printf("%d",*p);
}

这有什么问题阿

总是提示:Non-portable pointer assignment in function main

p="0x2000"; 这改下.
对于结果,不同机器有不同的答案,不必深究.

这个东西不同的机有不同的结果啊。
系统不一样结果就不一样。
关键就是那个0x2000,究竟有没有这个地址让你的指针指。
在我的机上这个程序是没有错的,结果是-8。
你可以尝试换一个编译器来试试。

指针不可以那样赋值的.
如果你赋值为0x2000的话一定要加""号.
即:
#include<stdio.h>
main()
{
char *p;
p="0x2000";
printf("%d\n",*p);
}

最后输出结果为48