永发信息网

为什么C语言这里就可以用str[0]和str[1]表示长度为20的字符串

答案:2  悬赏:30  手机版
解决时间 2021-03-28 01:26
为什么C语言这里就可以用str[0]和str[1]表示长度为20的字符串
最佳答案
char str[3][20]; 是一个二维数组,

由三个长度为20的字符串数组组成。
三个数组的第一元素分别可以是str[0][0],str[0][1],str[0][1]
按按数组特性,当去掉下标是就是就是该数组地址,
因此str[0],str[0],str[0]分别代表三数组地址。
三个数组容量为20,使用sizeof函数可以获取容量大小,
长度由为从头开始到‘\0’,使用strlen函数可以获取长度。

请楼主确认下,你获取的长度是容量还是字符串长度。追问因此str[0],str[0],str[0]分别代表三数组地址这句话应该是str[0] str[1] str[2]吧。我没有取长度吧,。就是一个字符串大小比较从左到右。
还有就是“按数组特性,当去掉下标是就是就是该数组地址”有这说法吗追答char arr[10] = 0;
容量为10
长度为0
arr或者&arr[0]为元素首地址,arr+1为第二元素地址
arr也是数组名
&arr为数组地址,地址和arr相同但是用处不同

同理可以推导二维数组。
同时你可以尝试下敲个代码,输出它们的地址,一看就明白了
全部回答

char str[3][20]; 定义了一个字符类型的二维数组 ,通过数组名str[0]可以调用的是第一个字符串 后面的20为字符串的长度。这种定义方法跟数组的指针有关系  
C Prime Plus 有关于这个的讲解 类似于这样的程序

在第十章字符串和字符串函数有,这本书讲的特别透彻,希望能帮到您
追问那只能理解为是这么引用的了,谢了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
logo汉字怎样写汉字logo
字太潦草,不认识,求解
铁皮文件柜里有保险柜,不小心扭转了几下,有
韩国电影主人公名字朴泰植
关于立人立志的词语
尼康d850加大三元配什么摄影包好,推荐几款
PS里面做得时候是红色的图片 怎么弄去另一张
主持 方丈 老衲还有叫啥名
一审有开一庭,没有开宣判庭,就叫人拿判决书
美甲一个手指沾满钻多钱?
I don’t believe we’ve met before,I must
(-48)÷8²-(-25)÷(-6)²
我是个21岁的大学生,家里管的我受不了了
できたよ是什么意思(有追问)
我才28岁今年,头顶有很多白发,是怎么回事
推荐资讯
用了开塞露还是拉不出大便怎么办
0.32里有几个0.01
小红借了一本150页的故事书,她3天看了45页.
神武手游跟电脑同步吗
在dos提示符中如何输入路径?
140 150 160 170几加几减等于几 我不喂
用axure制作网站网页大小是多少
浩辰云建筑CAD建筑设计图如何转存天正图纸
儿子领父亲的安葬费经过妹妹吗
草皮有几种,绿化草皮种类价格,草皮有几种
-9是数a的一个平方根,那么数a的另一个平方根
公有云跟私有云的区别在哪里?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?