【C 语言】数组 ( 指针数组用法 | 自我结束能力 )
文章目录
- 一、指针数组用法 ( 自我结束能力 )
- 二、完整代码示例
一、指针数组用法 ( 自我结束能力 )
在上一篇博客 【C 语言】数组 ( 指针数组用法 | 命令行参数处理 ) 中的主函数中的 char**env
参数 , 这是个 指针数组 , 其传入参数后 , 退化为 二级指针 , 但其有着 自我结束能力 , 该 指针数组 中的最后一个指针 指向的地址 为 NULL , 即 指针变量 的值为 0 , 这就代表着指针数据的最后一个元素 ;
/*** @brief 主函数入口* @return*/
int main(int argc, char* argv[], char**env)
{}
在不知道数组个数的情况下 , 为 数组 最后一个元素 赋值 0
, '\0'
, NULL
等值 , 用于判断该元素是否是 数组的最后一个元素 ;
下面定义的 指针数组 , 不知道该 指针数组 中的 指针元素个数 , 但是知道该数组中最后一个元素的值为 '\0'
,
// 指针数组 , 数组中存放着指针 , 每个指针指向 字符串 常量// 字符串常量在 全局区 中char* menu_array[] = {"query","update","insert","delete",'\0'};
那么可以通过 menu_array[i] != NULL
作为循环控制的终止条件 ;
// 循环终止条件设置为 menu_array[i] != NULLfor(i = 0; menu_array[i] != NULL; i++){printf("%s\n", menu_array[i]);}
特别注意 , 0
, '\0'
, NULL
这三个值都是 000 , 其作用的结果相同 ;
- C 中有如下宏定义 , 0 就是 NULL ;
#define NULL 0
'\0'
是对 0 字符进行字符转义 , 就是 ASCII 码 的 0 值 , 其值还是 0 ;
指针数组 的自我结束能力 , 就是在 指针数组 最后一个元素 设置 0
, '\0'
, NULL
这三个值中的任意一个值 ; 遍历时 , 使用 menu_array[i] != NULL
作为循环终止条件 ;
二、完整代码示例
完整代码示例 :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>/*** @brief main* @return*/
int main()
{// 循环控制变量int i = 0;// 指针数组 , 数组中存放着指针 , 每个指针指向 字符串 常量// 字符串常量在 全局区 中char* menu_array[] = {"query","update","insert","delete",NULL};// 循环终止条件设置为 menu_array[i] != NULLfor(i = 0; menu_array[i] != NULL; i++){printf("%s\n", menu_array[i]);}// 命令行不要退出system("pause");return 0;
}
执行结果 :
query
update
insert
delete
请按任意键继续. . .
【C 语言】数组 ( 指针数组用法 | 自我结束能力 )相关推荐
- 【c语言】指针数组和数组指针-解释和用法
数组指针与指针数组: 优先级:()>[]>* 首先我们要说的一个知识点是 int *p[3] 和 int (*p)[3]的区别 int (*p)[3] 因为()优先级高,首先说明 ...
- 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)
相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...
- c语言动态指针数组--一种伪二维数组
通过动态内存分配实现c语言动态指针"数组". 其实这种结构并非是一种数组,只是手动实现的一种类似数组的结构,实现类似数组的功能.应该可以说是一种伪数组结构吧. #include & ...
- c语言--函数指针数组
c语言–函数指针数组 1.指针数组的概念 本质是数组,数组的每一个元素是一个指针变量: 2.指针数组的定义方法 类型说明符 *数组名[元素个数] void test() {int a=10,b=20, ...
- 【C 语言】数组 ( 数组指针 | 数组指针定义 | 使用 数组类型* 定义数组指针 )
文章目录 总结 一.使用 数组类型* 定义数组指针 二.完整代码示例 总结 typedef int(ArrayType)[3];ArrayType *p = NULL; 一.使用 数组类型* 定义数组 ...
- 「C语言」指针数组 数组指针 指针函数 函数指针
相信很多人和我一样,有着这样的恐惧,那就是这四个玩意怎么也分不清,这都是啥啥啥啥呢?今天我们来具体分析一下.其实要具体了解这四个概念,只需要了解符号优先级,并关注最后两字,你就成功了一半. 符号优先级 ...
- 【C语言】指针进阶 - 指针数组 数组指针 数组指针传参 函数指针 指向函数指针数组的指针
目录 一.字符指针 一道题 二. 指针数组 解引用打印数组元素 &数组名 数组名 字符指针初始化 三.数组指针 取数组地址-放在数组指针里 类型 数组指针的使用 二维数组传参 判断 四.数组参 ...
- C语言之指针数组与数组指针详解
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.指针数组 一维指针数组的基本使用 一维指针数组的进阶使用 二.数组指针 - 数组为一维数组 - 数组为二维数组时 ...
- c语言中的指针语法,C语言中指针的用法介绍
C语言中指针的用法介绍 for(int i=0;i { num+=*s;s++; } return num; ) 这个例子中的函数 fun统计一个字符串中各个字符的 ASCII 码值之和.前面说了,数 ...
最新文章
- etcd — 架构原理
- modelsim仿真正确FPGA运行不正确的可能原因 - cm4写寄存器错
- matplotlib 笔记:设置x轴 y轴文字
- sudo uograde 之后 需要重装显卡驱动
- 如何卸载 Internet Explorer 7
- PHP调用类函数定义位置,OOP PHP – 如何有选择地调用类的构造函数中定义的特定方法?...
- Windows8 Metro应用开发之C#(3)- 数据控件ListView、GridView、FlipView
- Linux常用命令汇总 - Linux Shell Cheat Sheet
- Windows驱动程序之cat文件介绍
- 用计算机如何计算投资回收期,动态投资回收期怎么算的?
- 如何刷微博,怎么刷微博下拉框,怎样刷微博相关搜索
- 微信支付之App支付
- “21 天好习惯”第一期-4
- 动态折线图,制作原来是这么简单
- C#使用西门子S7 协议读写PLC DB块
- Android 6.0 JNI原理分析 和 Linux系统调用(syscall)原理
- C与C++成长之路——c提高二之指针强化和字符串
- blogger_如何在博客中添加推文并调试基本JavaScript:为什么Twitter.com/JavaScript/Blogger JSONP Widget停止工作?...
- openwrt用WEB刷固件型号不对问题强行处理
- 陆金所年营收618亿:平安持股41.6% 市值一年蒸发300亿美元