如何输出变量的所有地址
int a = 10;系统分配了4个字节,&a是返回的首字节地址,那么用什么代码能把4个字节的地址分别输出呢,以及每个字节里存的内容 本帖最后由 人造人 于 2021-2-26 10:57 编辑
#include <stdio.h>
int main(void) {
int a = 10;
unsigned char *p = (unsigned char *)&a;
for(size_t i = 0; i < sizeof(a); ++i) {
printf("%p -> %.2x\n", &p, p);
}
return 0;
}
人造人 发表于 2021-2-26 10:55
谢谢指点,这样定义p,就代表了p是指向了a的指针,因为是char类型,所以p保存的是a的第一个字节,是这么理解吧。 dysow 发表于 2021-2-26 11:23
谢谢指点,这样定义p,就代表了p是指向了a的指针,因为是char类型,所以p保存的是a的第一个字节,是这么 ...
嗯 dysow 发表于 2021-2-26 11:23
谢谢指点,这样定义p,就代表了p是指向了a的指针,因为是char类型,所以p保存的是a的第一个字节,是这么 ...
"所以p保存的是a的第一个字节"
所以p保存的是a的第一个字节的地址 人造人 发表于 2021-2-26 11:26
"所以p保存的是a的第一个字节"
所以p保存的是a的第一个字节的地址
谢谢,一下明白了指针还可以这么玩,以前一直都蒙的
页:
[1]