指针是C语言的灵魂,更是控制单片机的利器,今天,一起来看一下指针的真面目;
1.指针也是变量:
时刻记住,指针也是变量类型的一种,和 int char float一样,创建指针后,会在内存空间(RAM或data区)中分配空间。对于51架构的单片机,指针占3字节空间。
2.指针内部结构详解:
上文说到,指针占3字节空间;那么具体为:第一字节表示区域类型,第二、三字节表示实际的起始地址。下面举例说明;
定义 char* string1={“012345\n”};
通过查看.M文件,D:0014H PUBLIC string1。可以看出,string1这个指针变量被定义为char型的指针,编译器为其分配的内存起始地址为 0x0014。接下来,我们直接定位到该地址
可以看到,0x14处的3个字节数值分别为,0xff,0x06,0xff.其中第一字节表示所在区域,本例中 ,{“012345/n”}被定义在CODE段中(代码区),所以0xff表示code区。2、3字节为2个字节16进制数0x06ff,表示我们定义字符串的起始地址,定位到该处
可以看到 在Code区,0x06ff开始的8个字节中&#
C51架构单片机指针内存解读
最新推荐文章于 2024-07-02 22:25:55 发布
本文详细探讨了51单片机中指针的内存结构,指针作为变量在RAM或data区分配空间,由3字节组成,分别表示区域类型和起始地址。通过实例分析了不同类型指针指向不同存储区域的情况,如code区、data区和外部数据存储区(xdata)。
摘要由CSDN通过智能技术生成