数据类型 [指向存储区] *[存储区] 指针变量 | | | | | | | ^^^指针变量存储区域 | | | | ^^^^指针变量指向的区域,如:DATA CODE XDATA, 分配2个空间 默认是万能的,分配三个字节空间
如:unsigned char xdata *xdata ptr="123" 如果直接引用*ptr是得不到1的值,必须这样引用: unsigned char xx; xx = *((unsigned char code*)ptr); 这样才能引用到1的值
说明: 如果有指定指向存储区,那么指针变量的值都会指向指定存储区, unsigned char code chrtest[] = "123"; unsigned char xdata *ptr; ptr = chrtest; 这时ptr获取的地址是chrtest在code区分配地址,但是内容的值却 不是chartest中的内容,而是把得到的地址当做xdata区的地址,当然引用*ptr的数据,就得不到1的值,如果想引用,可以用强制类型转换取得 unsigned char chrtemp; temp = *((unsigne char code *)ptr); 才能取得:1的数据 |