关于指针变量的问题
来源:1-5 一级指针简介
Cc大佬
2023-02-21 22:23:49
在32bit的操作系统中,所有类型的指针变量都是4bytes. [因为地址为4bytes]
这是第一个结论
不同类型的指针变量,对C语言中的同一块内存进行读取的时候,每次读取的字节数
不同。(读取为指针变量 + *,剩下数据类型的大小),具体如下:
然后到第二个结论这里我就不清楚了
int a = 0x12345678; (ubuntu默认小端模式)
低地址
0xdff00 0x78
0xdff01 0x56
0xdff02 0x34
0xdff03 0x12
高地址
char *p = (char *)&a;
short *q = (short *)&a;
int *m = &a;
*p; //读取变量a的1bytes数据
*q; //读取变量a的2bytes数据
*m; //读取变量a的4bytes数据
指针变量 所有类型的指针变量都是4bytes也就是说p=q=m(大小)
为什么他们装数据有的读的多有的读的少 ?不是指针变量大小一样么
我感觉第一个结论和第二个结论冲突了
如果读取是按照数据类型大小读的话 意思是指针类型容量是4字节,只能读数据类型大小的字节么 就跟电池虚标电量一样
定义死记住了 就是逻辑不理解
2回答
山行老师
2023-02-22
相似问题