C语言 指向指针的指针

C语言指向指针的指针是一种高级的指针类型,也称为二级指针。它可以通过指向指针的指针来实现多级指针操作,用于处理多层嵌套的数据结构,如链表、树等。下面是指向指针的指针的使用攻略。

  1. 声明指向指针的指针

在使用指向指针的指针时,需要先声明它们的类型和名称。指向指针的指针的类型为int **p,其中**表示指向指针的指针。

示例代码:

int **p;
  1. 给指向指针的指针赋值

给指向指针的指针赋值时,需要先分配空间,并将指针的地址存储到指向指针的指针中。

示例代码:

int *p1 = NULL;
int **p2 = NULL;
p1 = (int*)malloc(sizeof(int));
*p1 = 10;
p2 = &p1;
printf("p1 value is %d\n", *p1);
printf("p2 value is %d\n", **p2);

解析代码:首先,声明一个int类型的指针p1和一个指向指针的指针p2,并将它们的值都初始化为NULL。接着,调用malloc函数为p1分配内存空间,并将10存储到此空间中。然后,将指针p1的地址存储到p2中。最后,通过*p1**p2分别访问p1p2指向的变量的值,并将它们输出到控制台上。

输出结果:

p1 value is 10
p2 value is 10
  1. 通过指向指针的指针修改指针指向的变量的值

通过指向指针的指针可以修改指针指向的变量的值,需要使用两个*运算符来进行间接引用。

示例代码:

int *p1 = NULL;
int **p2 = NULL;
p1 = (int*)malloc(sizeof(int));
*p1 = 10;
p2 = &p1;
**p2 = 20;
printf("p1 value is %d\n", *p1);
printf("p2 value is %d\n", **p2);

解析代码:首先,声明一个int类型的指针p1和一个指向指针的指针p2,并将它们的值都初始化为NULL。接着,调用malloc函数为p1分配内存空间,并将10存储到此空间中。然后,将指针p1的地址存储到p2中。接着,通过**p2p1指针指向的变量的值修改为20。最后,通过*p1**p2分别访问p1p2指向的变量的值,并将它们输出到控制台上。

输出结果:

p1 value is 20
p2 value is 20

以上就是指向指针的指针的完整使用攻略,通过实例来讲解,相信可以更好的理解。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言 指向指针的指针 - Python技术站

(0)
上一篇 2023年5月9日
下一篇 2023年5月9日

相关文章

  • 把其他C/C++编译器集成到VC2005中的方法

    将其他C/C++编译器集成到VC2005中,可以方便地拥有多个编译器的优势,使得编译更加高效、灵活,并且可以在不同的开发环境中进行快速切换。 下面是把其他C/C++编译器集成到VC2005中的方法: 第一步:获取其他编译器 在集成其他编译器之前,必须首先获取相应的编译器。常见的C/C++编译器有GCC、Clang、Intel C++等。在此以获取GCC为例,…

    C 2023年5月23日
    00
  • C语言商品销售系统源码分享

    C语言商品销售系统源码分享攻略 介绍 C语言商品销售系统是一种基于控制台的商品管理系统。它可以方便地用来管理商品的进出、库存变动、销售以及生成报告。本分享将为大家介绍如何使用和修改这个系统源码,以便于更好地满足实际需求。 下载 第一步是下载C语言商品销售系统的源码。该源码目前可以在各大代码分享网站上找到。下载下来之后,我们需要对源代码进行一些调整和配置,以适…

    C 2023年5月23日
    00
  • C++实现教工考勤信息管理系统

    C++实现教工考勤信息管理系统完整攻略 系统说明 教工考勤信息管理系统是一个基于C++的控制台应用程序,用于管理教工的考勤信息。其主要功能包括:添加教工信息、查找教工信息、浏览教工信息、删除教工信息、按照考勤情况进行筛选等。 系统设计 系统结构 教工考勤信息管理系统采用面向对象的设计思想,其系统结构包含以下几个类: 教工类:用于存储教工的基本信息,包括姓名、…

    C 2023年5月23日
    00
  • C 程序 查找给定范围内的素数

    下面是C程序查找给定范围内素数的完整使用攻略。 程序简介 这个C程序的主要功能是查找给定范围内的素数。用户需要输入一个起始数值和一个结束数值,程序会输出这个范围内的所有素数。程序的具体实现方式是使用了一个嵌套的for循环进行遍历,逐个判断每个数是否是素数。 使用方法 克隆或下载程序的源代码; 打开终端或命令提示符; 切换到程序的源代码目录; 使用C编译器编译…

    C 2023年5月9日
    00
  • C语言动态规划多种背包问题分析讲解

    C语言动态规划多种背包问题分析讲解 背包问题介绍 背包问题是动态规划中比较常见的问题之一,特别是在算法竞赛中。 一般来说,背包问题可分为两大类:01背包和完全背包。01背包是每个物品只能用一次,而完全背包则是每个物品可以无限制使用。 这里将介绍多种背包问题的分析和具体实现。 01背包问题 问题描述 有一个容量为V的背包和N个物品,每个物品的体积为v[i],价…

    C 2023年5月22日
    00
  • C++的指针,引用和STL详解

    C++的指针,引用和STL详解 指针 指针是C++语言中非常重要的一个概念,它是一个变量,其值为另一个变量的地址。指针的用途很广泛,它经常被用于动态的内存分配和数据结构中。 指针的定义和使用 指针的定义使用符号*,例如: int *p; 这个语句定义了一个名为p的指向int类型的指针。指针变量必须初始化才能使用,一般有两种方式: 直接初始化赋值,例如: in…

    C 2023年5月22日
    00
  • 全局变量与局部变量在内存中的区别详细解析

    全局变量与局部变量是程序设计中常用的两种变量类型。它们在内存中存储的位置和访问方式都有很大的不同。本文将详细解析它们的区别,并通过两条示例,说明它们在内存中的不同存储方式。 全局变量 全局变量是定义在程序的主体之外的变量,可以被程序的任意部分访问。在C语言中,通过在函数外部定义变量可以创建全局变量。 全局变量的存储位置是在程序的静态数据区中。在程序启动时,就…

    C 2023年5月23日
    00
  • 详解设计模式中的Command命令模式及相关C++实现

    详解设计模式中的Command命令模式及相关C++实现 什么是Command模式? Command模式是一种行为型设计模式,它将请求封装成一个对象,从而使您可以使用不同的请求、队列或日志请求参数化客户端对象。该模式还支持撤销操作。 Command模式的角色 Command模式涉及以下四个角色: Receiver: 程序执行实际操作的对象(比如照明系统、音响设…

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部