📅  最后修改于: 2023-12-03 15:38:47.084000             🧑  作者: Mango
在C语言中,我们可以通过指针来访问内存中的数据,但是如何打印指针的地址呢?下面我们来介绍几种方法。
%p是C语言中的一个格式符,用来打印地址。我们可以将指针变量传入printf函数,以%p作为格式符,来打印指针变量对应的地址。示例代码如下:
#include <stdio.h>
int main() {
int num = 10;
int *p = #
printf("p的地址为%p\n", p);
return 0;
}
运行结果:
p的地址为0x7ffeec6eba7c
在C语言中,&符号用于获取变量的地址。因此,我们也可以通过使用&运算符来获取指针变量的地址。示例代码如下:
#include <stdio.h>
int main() {
int num = 10;
int *p = #
printf("p的地址为%x\n", &p);
return 0;
}
运行结果:
p的地址为fbffbc5c
需要注意的是,这种方式打印出的不是指针变量p所指向的地址,而是p本身的地址。
uintptr_t是C语言中的一个整数类型,它能够存储任何指针类型的地址。我们可以使用它来存储指针变量的地址,然后再打印它。示例代码如下:
#include <stdio.h>
#include <stdint.h>
int main() {
int num = 10;
int *p = #
uintptr_t address = (uintptr_t)p;
printf("p的地址为%lx\n", address);
return 0;
}
运行结果:
p的地址为7fff57012cd4
需要注意的是,uintptr_t类型并不是C标准库中的类型,而是C99引入的类型,因此需要包含stdint.h头文件才能使用。
以上就是如何打印指针的地址的三种方法。在实际开发中,我们经常需要打印指针的地址来调试程序,掌握这些方法可以让我们更加高效地完成开发工作。