关于指针变量的问题
在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字节,只能读数据类型大小的字节么 就跟电池虚标电量一样
定义死记住了 就是逻辑不理解
正在回答
- 参与学习 394 人
- 提交作业 22954 份
- 解答问题 1163 个
行业热门,政策风口,人才缺口极大,现在入场时机正好! 上千人检验,数轮迭代的硬核知识体系,软硬件通吃 保姆式教学+简历指导+1V1模拟面试+3次内推,助力轻松就业!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星