【C 语言】二级指针作为输入 ( 指针数组 | 复杂指针解读 )
文章目录
- 一、指针数组
- 二、复杂指针解读
- 三、数组指针代码示例
一、指针数组
定义一个数组指针 : 数组中的 元素 是 指向 字符串的指针 , 即 每个数组元素 只有 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 语言】二级指针作为输入 ( 指针数组 | 复杂指针解读 )相关推荐
- c语言中error c2109 是什么错,求c语言改错 error C2109: 下标要求数组或指针类型?...
求c语言改错 error C2109: 下标要求数组或指针类型? /*魔方阵*/ #include int main() { int i,j,a,n; int arr[100][100]; print ...
- 什么是指针?什么是数组?指针和数组的关系?
什么是指针?什么是数组?指针和数组的关系? 形象地讲,我们可以把计算机的内存看作一条长街上的一排房屋,每个房间都可以容纳数据并通过一个房号来表识.而表示每个房间房号的值我们可以称为地址.或许这样的比喻 ...
- C语言下标要求数组或指针,c语言改错 error C2109: 下标要求数组或指针类型怎么改?...
/*魔方阵*/ #include int main() { int i,j,a,n; int arr[100][100]; printf("请输入n,n为100内奇数\n"); s ...
- c语言数字下标错误怎么改,c语言改错 error C2109: 下标要求数组或指针类型怎么改?...
/*魔方阵*/ #include int main() { int i,j,a,n; int arr[100][100]; printf("请输入n,n为100内奇数\n"); s ...
- C语言高级编程:二维数组、指针的指针、数组指针、指针数组
1. 定义 int **p; 指针的指针 int (*p2)[5]; 数组指针,指向一个数组 int *array[5]; 指针数组,是一个int *类型数组 int array2[3][5]; ...
- C语言将一字符串输入到数组(长度不超过80)后将其输出, 将其中的英文字母大小写互换后再将整个字符串输出。
题目 将一字符串输入到数组(长度不超过80)后将其输出, 将其中的英文字母大小写互换后再将整个字符串输出. 代码 # include <stdio.h> # include <str ...
- C语言结构体里的成员数组和指针
单看这文章的标题,你可能会觉得好像没什么意思.你先别下这个结论,相信这篇文章会对你理解C语言有帮助.这篇文章产生的背景是在微博上,看到@Laruence同学出了一个关于C语言的题,微博链接.微博截图如 ...
- 二级指针、数组指针、二维数组、指针数组作为函数形参时可传入的实参
1.传参规则: a.当二级指针作为函数形参时,能作为函数实参的是二级指针,指针数组,一级指针的地址 b.当数组指针作为函数形参时,能作为函数实参的是二维数组,数组指针 c.当二维数组作为函数形参时,能 ...
- c语言数组与指针编程源码,C语言编程(练习9:数组与指针)
题目:有 5 个字符串,首先将它们按照字符串中的字符个数由小到大排列,再分别取出每个字符串的第三个字母合并成一个新的字符串输出(若少于三个字符的输出空格).要求:利用字符串指针和指针数组实现. 代码实 ...
- C语言输入输出字符串(一般方式,数组,指针)
1.一般的输入输出 (1) #include<stdio.h> #define N 10int main(){char a[N];gets(a);//输入puts(a);//输出} (2) ...
最新文章
- 【干货】目标检测比赛中的trick
- metrics_将指标标签与MicroProfile Metrics 2.0结合使用
- 新版《Windows Sysinternals实战指南》,读书积赞活动
- [软技能] 现如今面对如层出不穷的类库,说说你的感受
- 3级软件测试试题,软件测试人员(.NET)_3级_操作技能鉴定1.1.3试题单(26页)-原创力文档...
- POI导出Execl文件,使JAVA虚拟机OOM
- innobackupex参数之 --throttle 限速这个值设置多少合理 原创
- 软件工程专插本_2021年广东专插本8所学校招生专业(拟),华师停招专插本?...
- 网络体系结构——ISO/OSI参考模型
- SpringBoot系列(5):SpringBoot对JSON数据的处理
- 本科双非,考研压线上北大,总结一下我的复习过程,希望对考研er有点帮助!
- 【转】奇幻RPG(人物构造 与 Abstract Factory模式)
- 苹果手机计算机无法横屏,苹果手机怎么设置屏幕旋转失灵了怎么办
- winform 创建窗口句柄时出错
- 用PS制作动态雪景的教程
- 电脑上与android手机文件互传
- ArcCatalog、ArcGlobe、ArcMap、ArcReader、ArcScene介绍
- STM32,软复位,上电复位,看门狗复位对芯片IO状态的影响?
- 流程平台——如何严卡提测质量
- java里面operate方法的用法,operate的用法总结大全