返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言的多级指针你了解吗
  • 143
分享到

C语言的多级指针你了解吗

2024-04-02 19:04:59 143人浏览 八月长安
摘要

目录前言一、多级指针概念二、多级指针的使用1.二维指针总结前言 自学笔记,没有历史知识铺垫(省略百度部分)C语言了解多级指针的使用 一、多级指针概念 指向指针的指针 即:存放地址的

前言

自学笔记,没有历史知识铺垫(省略百度部分)C语言了解多级指针的使用

一、多级指针概念

指向指针的指针
即:存放地址的地址
int **p;

多级指针可以将内存上毫无关系的多组数据,产生关系(线性操作数据)

二、多级指针的使用

1.二维指针

二维指针示例,此处以系统入口main函数示例1 通过arGC提供的数量做循环


int main(int argc,char **argv)
{
    for (int i = 0; i < argc; i++)
    {
            printf("argv[%d]=%s \n",i,argv[i]);
    }
    return 0;
}

$ gcc -o main main.c
$ ./main staging myname mypassWord
argv[0]=./main 
argv[1]=staging 
argv[2]=myname 
argv[3]=mypassword 

main函数中读取传入的二维指针示例2 仅通过二维指针做判断


int main(int argc,char **argv)
{
    int i = 0;
    while (argv[i]!=NULL)
    {
       printf("argv[%d]=%s \n",i,argv[i]);
       i++;
    }
    return 0;
}

可以使用NULL或者0x0作为多级指针是否读取完毕的标识,效果一致


$ gcc -o main main.c
$ ./main staging myname mypassword
argv[0]=./main 
argv[1]=staging 
argv[2]=myname 
argv[3]=mypassword 

二维指针的创建


int main()
{
    char **a;
    char a1 = 1;
    char a2 = 2;
    char a3 = 3;
    a[0] = &a1;
    a[1] = &a2;
    a[2] = &a3;
    //a[0]:1,a[1]:2,a[2]:3
    printf("a[0]:%d,a[1]:%d,a[2]:%d", a[0][0], *a[1], *a[2]);
    return 0;
}

    char *a[5];
    char a1 = 1;
    char a2 = 2;
    char a3 = 3;
    a[0] = &a1;
    a[1] = &a2;
    a[2] = &a3;
    //a[0]:1,a[1]:2,a[2]:3
    printf("a[0]:%d,a[1]:%d,a[2]:%d", a[0][0], *a[1], *a[2]);
    return 0;

以上两种方案效果一致

注意:

二维指针与数组的概念非常类似,如上char **a;和char a[]的作用相似二维指针的读取方法a[0][0]或者*a[0]都可以,前者是二维指针下标,a[0]等同于*a

总结

本章主要为C语言了解多级指针的使用

--结束END--

本文标题: C语言的多级指针你了解吗

本文链接: https://lsjlt.com/news/133720.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C语言的多级指针你了解吗
    目录前言一、多级指针概念二、多级指针的使用1.二维指针总结前言 自学笔记,没有历史知识铺垫(省略百度部分)C语言了解多级指针的使用 一、多级指针概念 指向指针的指针 即:存放地址的...
    99+
    2024-04-02
  • C/C++编程语言中的指针(pointer)你了解吗
    目录1What2用法示例2.1示例总结1 What 指针,是 C/C++ 编程语言中的一个重要概念。指针通常可以理解为内存地址,而指针变量就是用来存放内存地址的变量。在同一 CPU ...
    99+
    2024-04-02
  • C语言中二级指针解析(指向指针的指针)
    目录二级指针(指向指针的指针)二级指针的定义与理解二级指针定义格式二级指针赋值实例二级指针(指向指针的指针) 指针可以指向一份普通类型的数据,例如 int、double、char 等...
    99+
    2024-04-02
  • 深入了解C语言指针
    目录指针是什么?指针和指针类型指针运算总结指针是什么? 总结:指针就是个变量,变量里面是地址,指针就是地址。(存放在指针的值都被当成地址处理)。 注:指针的大小在32位平台是4个字节...
    99+
    2024-04-02
  • C++的智能指针你真的了解吗
    目录什么是RAIIRAII的原理裸指针存在的问题auto_ptrunique_ptr总结什么是RAII RAII(Resource Acquisition Is Initializa...
    99+
    2024-04-02
  • 一篇文章带你了解C语言指针进阶
    目录1.字符指针2.指针数组3.数组指针4.函数指针5.数组传参总结1.字符指针 我们已经知道了数组名在大部分时候表示数组的地址,指针本质上也表示一个地址,那么我们能否用指针来创建一...
    99+
    2024-04-02
  • C++ 智能指针的魅力你都了解吗
    前情提要 我们知道除了静态内存和栈内存外,每个程序还有一个内存池,这部分内存被称为自由空间或者堆。程序用堆来存储动态分配的对象即那些在程序运行时分配的对象,当动态对象不再使用时,我们...
    99+
    2024-04-02
  • C语言清楚了解指针的使用
    目录前言字符指针指针数组数组指针函数指针前言 经过了指针的初步学习,我们了解了指针有以下特点: 1. 指针就是个变量,用来存放地址,地址唯一标识一块内存空间。 2. 指针的大小是固定...
    99+
    2024-04-02
  • C语言中const和指针的秘密你知道吗
    目录指针的赋值问题ANSIC有关简单赋值的标准问题解决char*和constchar*char**和constchar**const修饰const修饰变量const修饰指针const...
    99+
    2024-04-02
  • C语言指针详解之野指针
    目录指针是什么?怎么表示?什么是指针变量?指针类型又是什么?指针类型存在的意义野指针是什么?野指针产生的原因一、 指针未初始化二、 指针越界访问如何避免野指针(野狗)的出现呢?指针运...
    99+
    2024-04-02
  • C语言指针详解
    目录前言:复杂类型说明一、细说指针1.指针的类型2.指针所指向的类型3.指针的值----或者叫指针所指向的内存区或地址4 指针本身所占据的内存区二、指针的算术运算三、运算符&...
    99+
    2024-04-02
  • 深入了解C语言中的const和指针
    目录前言指针的赋值问题ANSI C 有关简单赋值的标准问题解决const修饰const修饰变量const修饰指针前言 文章内容由阅读《C专家编程》整理而来。希望可以帮助大家解决在指针...
    99+
    2024-04-02
  • c语言二级指针是什么
    C语言中的二级指针是指一个指针变量的指针。它是指向指针的指针,也被称为指向指针的指针。可以简单理解为指向指针的指针变量。例如,有一个...
    99+
    2024-02-29
    c语言
  • C语言的运算符你了解吗
    目录前言一、算数运算符(数学运算) + -* / %二、逻辑运算符(判断真假)|| &&> >= < <=!? : ...
    99+
    2024-04-02
  • C语言的结构体你了解吗
    目录结构体内存对齐结构体传参结构体实现位段什么是位段位段在内存中的存储位段的问题总结结构体内存对齐 当我们创建一个结构体变量时,内存就会开辟一块空间,那么在创建结构体变量时内存到底是...
    99+
    2024-04-02
  • C语言的strcpy函数你了解吗
    目录strcpy函数原型参数讲解返回值详解函数详解第二个注意点:目标空间必须足够大,以确保能存放源字符串第三个注意点:目标空间必须可变总结strcpy 拷贝字符串到目标地址 函数原...
    99+
    2024-04-02
  • C语言的空类型指针,空指针,野指针详解
    目录空类型指针-void*空指针-NULL野指针造成野指针的原因1.指针未初始化2.指针越界访问3.指针指向的空间已经释放避免野指针总结空类型指针-void* void是空类型,vo...
    99+
    2024-04-02
  • C语言的数组指针与函数指针详解
    目录前言函数指针语法数组指针与指针数组总结前言 数组指针和函数指针都是C语言比较难的知识点,尤其是函数指针,并且函数指针在开发中有着巨大的作用。 函数指针语法 定义一个函数指针,并通...
    99+
    2024-04-02
  • 详解C语言的void*空指针
    目录void的应用空指针类型(void*)总结在C语言中,void称为无类型,相应的void*称为无类型指针或者空指针类型。 void的应用 对函数返回值的限定。 例如void fu...
    99+
    2024-04-02
  • c语言的指针数组详解
    指针如何指向数组,并读取数组中的元素: #include <stdio.h> int main() { int arr[3] = {1,2,3}; int *p;...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作