我只想告诉7楼 * (除了指向单个数据单位的指针外) 是解除引用的意思,并不是取里面的值
例:
程序代码:
//由于该指针是指向单个数据单位的指针,所以是获得了以ICU_BASE + 0x0480这个内存地址开始的4个字节的内容,并解析为unsigned int 型
例:
程序代码:#include <iostream>
int main()
{
const int (* const p)[4] = new int[2][4];
std::cout<< "p = " << p << "\tp + 1 = " << p + 1 <<std::endl;
//由于p所指向数组的元素为4个int类型,所以加1会增加4 * sizeof(int)个字节
std::cout<< "*p = " << *p << "\t*p + 1 = " << *p + 1 << std::endl;
//*p会解除一级引用,其性质不是取里的内容,而是使其指向一个元素为1个int类型的数组,加1只会扩展1 * sizeof(int)个字节
delete [] p;
system("pause");
return 0;
}
*((volatile uint *) (ICU_BASE + 0x0480)) //这句的意思是把宏ICU_BASE + 0x0480的值(编译器优化为int型)强制转换为不会被编译器优化无符号int型的常指针//由于该指针是指向单个数据单位的指针,所以是获得了以ICU_BASE + 0x0480这个内存地址开始的4个字节的内容,并解析为unsigned int 型

My life is brilliant








