C 语言中的指向指针的指针

CCBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在 C 编程中,指针用于存储其他变量的内存地址。类似地,指向指针的指针是一个变量,它存储另一个指针变量的内存地址。在本实验中,我们将学习如何编写一个处理指向指针的指针的 C 程序。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("`C`")) -.-> c/BasicsGroup(["`Basics`"]) c(("`C`")) -.-> c/PointersandMemoryGroup(["`Pointers and Memory`"]) c(("`C`")) -.-> c/UserInteractionGroup(["`User Interaction`"]) c/BasicsGroup -.-> c/variables("`Variables`") c/BasicsGroup -.-> c/operators("`Operators`") c/PointersandMemoryGroup -.-> c/pointers("`Pointers`") c/PointersandMemoryGroup -.-> c/memory_address("`Memory Address`") c/UserInteractionGroup -.-> c/output("`Output`") subgraph Lab Skills c/variables -.-> lab-123305{{"`C 语言中的指向指针的指针`"}} c/operators -.-> lab-123305{{"`C 语言中的指向指针的指针`"}} c/pointers -.-> lab-123305{{"`C 语言中的指向指针的指针`"}} c/memory_address -.-> lab-123305{{"`C 语言中的指向指针的指针`"}} c/output -.-> lab-123305{{"`C 语言中的指向指针的指针`"}} end

声明必要的变量

在这一步中,我们将声明三个变量:var*ptr**pptr

int var;
int *ptr;
int **pptr;

为变量 var 赋值

在这一步中,我们将为变量 var 赋值。

var = 50;

将变量 var 的地址赋值给指针 ptr

在这一步中,我们将变量 var 的地址赋值给指针 ptr

ptr = &var;

将指针 ptr 的地址赋值给指向指针的指针 pptr

现在,我们将指针 ptr 的地址赋值给指向指针的指针变量 pptr

pptr = &ptr;

使用 pptr 访问值

最后,我们将使用指向指针的指针变量 pptr 访问 var 的值。

printf("\nValue of var = %d\n", var);
printf("\nValue available at *ptr = %d\n", *ptr);
printf("\nValue available at **pptr = %d\n", **pptr);

第一个 printf 语句将打印变量 var 的值。

第二个 printf 语句将打印存储在 ptr 中的内存地址处的值,这应该是 var 的值。

第三个 printf 将打印存储在 pptr 中的内存地址处的值,这应该是 ptr 的值,然后通过两次解引用获取 var 的值。

main.c 中编写完整代码

现在我们已经完成了各个步骤,可以将代码整合到 main.cmain 函数中。

#include <stdio.h>

int main()
{
    int var;
    int *ptr;
    int **pptr;

    var = 50;

    ptr = &var;

    pptr = &ptr;

    printf("Value of var = %d\n", var);
    printf("Value available at *ptr = %d\n", *ptr);
    printf("Value available at **pptr = %d\n", **pptr);

    return 0;
}

总结

在这个逐步的实验中,我们学习了如何编写一个处理指向指针的指针的 C 程序。我们声明了必要的变量,为变量赋值,将变量的地址赋值给指针,将指针的地址赋值给指向指针的指针,最后使用指向指针的指针访问了变量的值。熟悉指向指针的指针是学习 C 编程的重要基石。

您可能感兴趣的其他 C 教程