一级指针简介
来源:1-6 项目作业
Cc大佬
2022-11-07 15:40:36
指针的结论
在32bit的操作系统中,所有类型的指针变量都是4bytes. [因为地址为4bytes]
资料里面有这样一句话这句话是仅限于32bit的操作系统么
我见下面这个代码案例输出结果有点不一样
//04-pointer.c
#include <stdio.h>
int main()
{
char *x;
short *y;
int *z;
int t = 0x12345678;
x = (char *)&t;
y = (short *)&t;
z = &t;
printf("*x = %#x\n",*x); //输出十六进制数
printf("*y = %#x\n",*y);
printf("*z = %#x\n",*z);
运行结果
*x = 0x78
*y = 0x5678
*z = 0x12345678
为什么这几个指针变量输出结果不是4byte啊
是因为不是32bit的操作系统么
1回答
山行老师
2022-11-07
这是因为你的函数printf()用的是【%#x】,导致地址前面的0x0000被省略掉了,如果想看到4Byte的地址应该使用【%#X】。//大写的X
相似问题