指针使用的疑问,该如何处理
指针使用的疑问int *ptrptr(int *)0x8000*ptr0xaabb为什么说这样用非常危险?第三条语句是不是这么理
指针使用的疑问
int *ptr;
ptr=(int *)0x8000;
*ptr=0xaabb;
为什么说这样用非常危险?第三条语句是不是这么理解:给0x8000所指的内存块赋值0xaabb?
[解决办法]
>第三条语句是不是这么理解:给0x8000所指的内存块赋值0xaabb?
是这个意思。不过实际运行可能会产生异常,因为0x8000所在的地址内容是不能读写的
[解决办法]
除非所有的资源都是自己分配使用
尽量避免直接操纵底层(内存、IO等),它们有系统软件管理
[解决办法]
[解决办法]对16位单片机而言,sizeof(int)==2
意思就是
当小端内存时,往0x8000地址处写入0xbb,往0x8001地址处写入0xaa;
当大端内存时,往0x8000地址处写入0xaa,往0x8001地址处写入0xbb
[解决办法]+搞不好就挂了~~
[解决办法]两个地址在不是你自己了解的情况下切记不可使用它们,因为他们是未知的,也正因为这个所以非常危险,可能没问题,也可能电脑崩溃!
最后一句的理解楼主是对的!