以下是引用奋斗青春在2010-8-20 09:27:08的发言:
唉,我是新手,你写的那个程序都不是很懂哦,只是我看到指针这一节,书上将到不能对指针赋一个字符常量地址,还举了一个例子,我也不明白。
int a[4]={1,2,3,4};
int *p;
p=2000;
printf(“%x”,p); /*错误*/
p=a; /*正确*/
我也不知道是什么回事
楼主是想直接给指针赋值地址,其实这是完全可以的,但要注意两个问题:
1、赋值时必须要强制转换,比如p=(int *)0xff00,地址用十六进制
1、你赋值的地址必须是你有操作权限的地址,否则就会提示错误。比如假设地址0xff00为操作系统占用内存,是可以赋值的,但是不能进行写操作,因为没有权限。
其实这个问题在《C 语言深度解剖》第77页(4.1.4,如何将数值存储到指定的内存地址)这一节已说的很清楚,楼主不妨参考一下。