文章目录

  • 一、指针数组
  • 二、复杂指针解读
  • 三、数组指针代码示例

一、指针数组


定义一个数组指针 : 数组中的 元素 是 指向 字符串的指针 , 即 每个数组元素 只有 4 字节 ;

char *array[] = {"abc", "123", "258", "sfd"};

遍历上述 数组指针 : 使用 数组下标 与 指针 的形式进行遍历 , 效果相同 ;

    // 循环控制变量int i = 0, j = 0;// 数组大小int num = 0;// 计算数组大小num = sizeof(array) / sizeof(array[0]);// 打印上述数组for(i = 0; i < num; i++){// 使用 数组下标 与 指针 进行遍历 , 效果相同printf("%s\n", array[i]);printf("%s\n", *(array + i));}

二、复杂指针解读


复杂指针阅读参考

  • 【C 语言】指针数据类型 ( 指针步长 | 复杂指针阅读技巧 )
  • 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)3. 解读 复杂的 指针声明 ( 难点 重点 | ①找出中心标识符 ②先右 后左 看 确定类型 提取 ③ 继续分析 左右看 … )

博客 , 阅读复杂指针 ;

上述指针数组解析流程 :

  • ① 中心标识符是 array
  • ② 先往右看 , 遇到 [] , 说明这是一个数组 , 挖掉 array[] 内容 , 然后调转方向往左看
  • ③ 发现是 * , 说明数组中的元素是指针 , 挖掉 * , 往右看没内容 , 往左看
  • ④ 发现是 char , 说明指针指向的数据是 char 类型

char *array[] = {"abc", "123", "258", "sfd"}; 中 , array 是一个数组 , 数组中的元素的 char * 字符串 ,

    /** 复杂指针阅读* 参考 https://blog.csdn.net/shulianghan/article/details/121453520 和* https://hanshuliang.blog.csdn.net/article/details/78568351#3____________________2803* 博客章节进行阅读** 复杂指针解析流程 :* 1. 中心标识符是 array* 2. 先往右看 , 遇到 [] , 说明这是一个数组 , 挖掉 array[] 内容 , 然后调转方向往左看* 3. 发现是 * , 说明数组中的元素是指针 , 挖掉 * , 往右看没内容 , 往左看* 4. 发现是 char , 说明指针指向的数据是 char 类型** array 是一个数组 , 数组中的元素的 char * 字符串** 这是 指针数组 , 数组元素 是 指针*/char *array[] = {"abc", "123", "258", "sfd"};

这是 指针数组 , 数组元素 是 指针

三、数组指针代码示例


代码示例 :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>void main()
{// 循环控制变量int i = 0, j = 0;// 数组大小int num = 0;/** 复杂指针阅读* 参考 https://blog.csdn.net/shulianghan/article/details/121453520 和* https://hanshuliang.blog.csdn.net/article/details/78568351#3____________________2803* 博客章节进行阅读** 复杂指针解析流程 :* 1. 中心标识符是 array* 2. 先往右看 , 遇到 [] , 说明这是一个数组 , 挖掉 array[] 内容 , 然后调转方向往左看* 3. 发现是 * , 说明数组中的元素是指针 , 挖掉 * , 往右看没内容 , 往左看* 4. 发现是 char , 说明指针指向的数据是 char 类型** array 是一个数组 , 数组中的元素的 char * 字符串** 这是 指针数组 , 数组元素 是 指针*/char *array[] = {"abc", "123", "258", "sfd"};// 计算数组大小num = sizeof(array) / sizeof(array[0]);// 打印上述数组for(i = 0; i < num; i++){// 使用 数组下标 与 指针 进行遍历 , 效果相同printf("%s\n", array[i]);printf("%s\n", *(array + i));}// 命令行不要退出system("pause");return;
}

执行结果 :

【C 语言】二级指针作为输入 ( 指针数组 | 复杂指针解读 )相关推荐

  1. c语言中error c2109 是什么错,求c语言改错 error C2109: 下标要求数组或指针类型?...

    求c语言改错 error C2109: 下标要求数组或指针类型? /*魔方阵*/ #include int main() { int i,j,a,n; int arr[100][100]; print ...

  2. 什么是指针?什么是数组?指针和数组的关系?

    什么是指针?什么是数组?指针和数组的关系? 形象地讲,我们可以把计算机的内存看作一条长街上的一排房屋,每个房间都可以容纳数据并通过一个房号来表识.而表示每个房间房号的值我们可以称为地址.或许这样的比喻 ...

  3. C语言下标要求数组或指针,c语言改错 error C2109: 下标要求数组或指针类型怎么改?...

    /*魔方阵*/ #include int main() { int i,j,a,n; int arr[100][100]; printf("请输入n,n为100内奇数\n"); s ...

  4. c语言数字下标错误怎么改,c语言改错 error C2109: 下标要求数组或指针类型怎么改?...

    /*魔方阵*/ #include int main() { int i,j,a,n; int arr[100][100]; printf("请输入n,n为100内奇数\n"); s ...

  5. C语言高级编程:二维数组、指针的指针、数组指针、指针数组

    1. 定义 int **p;  指针的指针 int (*p2)[5];  数组指针,指向一个数组 int *array[5];  指针数组,是一个int *类型数组 int array2[3][5]; ...

  6. C语言将一字符串输入到数组(长度不超过80)后将其输出, 将其中的英文字母大小写互换后再将整个字符串输出。

    题目 将一字符串输入到数组(长度不超过80)后将其输出, 将其中的英文字母大小写互换后再将整个字符串输出. 代码 # include <stdio.h> # include <str ...

  7. C语言结构体里的成员数组和指针

    单看这文章的标题,你可能会觉得好像没什么意思.你先别下这个结论,相信这篇文章会对你理解C语言有帮助.这篇文章产生的背景是在微博上,看到@Laruence同学出了一个关于C语言的题,微博链接.微博截图如 ...

  8. 二级指针、数组指针、二维数组、指针数组作为函数形参时可传入的实参

    1.传参规则: a.当二级指针作为函数形参时,能作为函数实参的是二级指针,指针数组,一级指针的地址 b.当数组指针作为函数形参时,能作为函数实参的是二维数组,数组指针 c.当二维数组作为函数形参时,能 ...

  9. c语言数组与指针编程源码,C语言编程(练习9:数组与指针)

    题目:有 5 个字符串,首先将它们按照字符串中的字符个数由小到大排列,再分别取出每个字符串的第三个字母合并成一个新的字符串输出(若少于三个字符的输出空格).要求:利用字符串指针和指针数组实现. 代码实 ...

  10. C语言输入输出字符串(一般方式,数组,指针)

    1.一般的输入输出 (1) #include<stdio.h> #define N 10int main(){char a[N];gets(a);//输入puts(a);//输出} (2) ...

最新文章

  1. 【干货】目标检测比赛中的trick
  2. metrics_将指标标签与MicroProfile Metrics 2.0结合使用
  3. 新版《Windows Sysinternals实战指南》,读书积赞活动
  4. [软技能] 现如今面对如层出不穷的类库,说说你的感受
  5. 3级软件测试试题,软件测试人员(.NET)_3级_操作技能鉴定1.1.3试题单(26页)-原创力文档...
  6. POI导出Execl文件,使JAVA虚拟机OOM
  7. innobackupex参数之 --throttle 限速这个值设置多少合理 原创
  8. 软件工程专插本_2021年广东专插本8所学校招生专业(拟),华师停招专插本?...
  9. 网络体系结构——ISO/OSI参考模型
  10. SpringBoot系列(5):SpringBoot对JSON数据的处理
  11. 本科双非,考研压线上北大,总结一下我的复习过程,希望对考研er有点帮助!
  12. 【转】奇幻RPG(人物构造 与 Abstract Factory模式)
  13. 苹果手机计算机无法横屏,苹果手机怎么设置屏幕旋转失灵了怎么办
  14. winform 创建窗口句柄时出错
  15. 用PS制作动态雪景的教程
  16. 电脑上与android手机文件互传
  17. ArcCatalog、ArcGlobe、ArcMap、ArcReader、ArcScene介绍
  18. STM32,软复位,上电复位,看门狗复位对芯片IO状态的影响?
  19. 流程平台——如何严卡提测质量
  20. java里面operate方法的用法,operate的用法总结大全

热门文章

  1. 《Elasticsearch in Action》书评与作者访谈
  2. linux下安装nagios
  3. Python爬虫(一)_HTTP的请求与响应
  4. 腾讯SNG的实习offer(多篇面经分享)
  5. CentOS7下安装ELK三件套
  6. nodeJS中读写文件方法的区别
  7. iOS开发多线程篇—多线程简介
  8. MAX2323E - 原理图系列
  9. Asp.Net异常:由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值的解决方法...
  10. c#强制执行内存回收