定义string[20],为什么在strcpy中不用string[20]

#include<stdio.h>#include<string.h>intmain(void){charstr[3][20];charstring[20];gets(s... #include<stdio.h>
#include<string.h>
int main(void)
{char str[3][20];
char string[20];
gets(str[0]);
gets(str[1]);
gets(str[2]);
if(strcmp(str[0],str[1])>0)
strcpy(string,str[0]);
else
strcpy(string,str[1]);
if(strcmp(str[1],str[2])>0)
strcpy(string,str[1]);
else
strcpy(string,str[2]);
printf("%s",string);
}
比如上面的程序 为什么strcpy中是string,而不是string【20】
展开
 我来答
lgao622
2013-12-20 · 知道合伙人软件行家
lgao622
知道合伙人软件行家
采纳数:1137 获赞数:6550
毕业于武汉工程大学邮电与信息工程学院通信专业,软件行业,4年工作经验。

向TA提问 私信TA
展开全部
string[20] 定义时是表示 20个元素的数组(下角标0~19)。
运行时 string[20] 其实越界了
strcpy 的两个参数传递的是 指针(地址);
对于数组来说,数组名即是常量地址;
数组名也表示其首地址(即等效于string == &string[0]);
但是二维数组 str[0] 表示其的第一行首地址, str[1] 表示其的第二行首地址,以此类推。。。。。
匿名用户
2013-12-21
展开全部
数组开始是以0开始的 0到19就是20个了 怎么会有string[20[呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式