c语言字符串数组的两种表示方法

本文详细介绍了字符串数组的概念及其两种表示方式,一种是作为二维数组的表示形式,另一种是通过指针数组来实现。文章还深入解释了如何理解指针数组中的元素指向字符串首字符的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串数组
1. 定义

  字符串数组:一个数组中的所有的元素都是字符串。  

  如果想存储一堆字符串那么可以使用字符串数组,说白了字符串数组就是二维数组

  字符串数组两种表示:

第一种:char strr[4][6] = {"aaa", "bbb", "ccc"}; //char类型的二维数组
第二种:char *str[4] = {"aaa", "bbb", "ccc"}; //char*类型的一维数组

这里解析一下第二种表示方法:str是一个一维数组,而且数组里面的每一个元素都是一个char类型值的地址。第一个指针是str[0],它指向第一个字符串的第一个字符。第二个指针是str[1],它指向第二个字符串的第一个字符。即一般地每一个指针指向相应字符串的的第一个字符:

*str[0]=='a',*str[1]=='b',*str[2]=='c'

以此类推,str数组实际上并不存放字符串,它只是存放字符串的地址(字符串存在程序用来存放常量的那部分内存中)。可以把str[0]看作第一个字符串。由于数组符号与指针的关系,也可以用str[0][0]来表示第一个字符串中的第一个字符,尽管str没有被定义为二维数组。

示例如下:

这里写图片描述

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值