📜  如何打印指针的地址 - C 编程语言(1)

📅  最后修改于: 2023-12-03 15:38:47.084000             🧑  作者: Mango

如何打印指针的地址 - C 编程语言

在C语言中,我们可以通过指针来访问内存中的数据,但是如何打印指针的地址呢?下面我们来介绍几种方法。

方法一:使用%p格式符

%p是C语言中的一个格式符,用来打印地址。我们可以将指针变量传入printf函数,以%p作为格式符,来打印指针变量对应的地址。示例代码如下:

#include <stdio.h>

int main() {
    int num = 10;
    int *p = &num;
    printf("p的地址为%p\n", p);
    return 0;
}

运行结果:

p的地址为0x7ffeec6eba7c
方法二:使用&运算符

在C语言中,&符号用于获取变量的地址。因此,我们也可以通过使用&运算符来获取指针变量的地址。示例代码如下:

#include <stdio.h>

int main() {
    int num = 10;
    int *p = &num;
    printf("p的地址为%x\n", &p);
    return 0;
}

运行结果:

p的地址为fbffbc5c

需要注意的是,这种方式打印出的不是指针变量p所指向的地址,而是p本身的地址。

方法三:使用uintptr_t类型

uintptr_t是C语言中的一个整数类型,它能够存储任何指针类型的地址。我们可以使用它来存储指针变量的地址,然后再打印它。示例代码如下:

#include <stdio.h>
#include <stdint.h>

int main() {
    int num = 10;
    int *p = &num;
    uintptr_t address = (uintptr_t)p;
    printf("p的地址为%lx\n", address);
    return 0;
}

运行结果:

p的地址为7fff57012cd4

需要注意的是,uintptr_t类型并不是C标准库中的类型,而是C99引入的类型,因此需要包含stdint.h头文件才能使用。

总结

以上就是如何打印指针的地址的三种方法。在实际开发中,我们经常需要打印指针的地址来调试程序,掌握这些方法可以让我们更加高效地完成开发工作。