永发信息网

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

答案:2  悬赏:30  手机版
解决时间 2021-03-28 01:26
  • 提问者网友:不爱我么
  • 2021-03-27 07:52
为什么C语言这里就可以用str[0]和str[1]表示长度为20的字符串
最佳答案
  • 五星知识达人网友:走死在岁月里
  • 2021-03-27 08:11
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相同但是用处不同

同理可以推导二维数组。
同时你可以尝试下敲个代码,输出它们的地址,一看就明白了
全部回答
  • 1楼网友:大漠
  • 2021-03-27 08:26

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

在第十章字符串和字符串函数有,这本书讲的特别透彻,希望能帮到您
追问那只能理解为是这么引用的了,谢了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯