指针在 C 语言中的输出142


在 C 语言中,指针是一个存储另一个变量或函数地址的变量。使用指针,我们可以轻松访问和修改变量的值,而无需显式传递它们。为了输出指向变量地址的指针,我们需要使用特殊的转义序列 %p,它将指针打印为十六进制格式。

输出整型变量的地址

假设我们有一个整型变量 num,要输出其地址,我们可以使用以下代码:#include
int main() {
int num = 10;
int *ptr = #
// 输出指针
printf("地址: %p", ptr);
return 0;
}

这段代码将输出以下内容:地址: 0x7ffe59b30ca0

其中 0x7ffe59b30ca0 是变量 num 内存地址的十六进制表示。

输出结构体变量的地址

对于结构体变量,我们可以使用相同的 %p 转义序列来输出其地址。假设我们有一个名为 student 的学生结构体,要输出其地址,我们可以使用以下代码:#include
typedef struct {
char name[50];
int age;
} student;
int main() {
student s = {"John Doe", 20};
student *ptr = &s;
// 输出指针
printf("地址: %p", ptr);
return 0;
}

这段代码将输出类似以下内容:地址: 0x7ffe59b30cc0

输出函数指针的地址

C 语言还允许我们使用函数指针。要输出函数指针的地址,我们可以使用 %p 转义序列。

假设我们有一个名为 print_message 的函数,要输出其指针地址,我们可以使用以下代码:#include
void print_message() {
printf("Hello, world!");
}
int main() {
void (*ptr)() = print_message;
// 输出指针
printf("地址: %p", ptr);
return 0;
}

这段代码将输出类似以下内容:地址: 0x401020

其他注意事项

输出指针时需要注意以下几点:* 指针本身也是一个变量,因此其地址必须存储在另一个指针中。
* 使用 %p 转义序列输出指针时,不要使用 & 取地址符。
* 指针地址的格式因编译器和平台而异。

2025-02-03


上一篇:在 C 语言中高效输出日志

下一篇:C 语言中强大的日志记录机制