学习执指针的时候我们知道不能够使用指针的常量去访问,但是今天学习到有的时候可以、而且是必须是用指针常量进行访问的。。。
假设在100个地址,存放这个变量int a ,并且100这个地址存放的数值是1;
那么我们调用这个语句:
*100 = 22;
那么这个程序正确不了?
不对的,因为编译器会把100当做int数据来进行处理,而这样是不对的,因为常量是不能赋值的,这个大家应该都知道的。
当然如何给地址是100的数值赋值了?
((int *)100) = 22;
这样既可,那么程序就可以访问了。。。
需要注意一下问题:
1.内容地址为100的时候,在程序第一次运行可能是在那个地方,但是在之后运行的时候就不一定了,因为有的时候会导致内容不一致。
2.但是在进行设备硬件访问的时候,程序会约定在某一个固定的地方调用数据,那么这个方法就可以使用了。。。