C语言字符数组的问题~~~超简单~~~

来源:百度知道 编辑:UC知道 时间:2024/06/07 07:01:11
#include<stdio.h>
#include<string.h>
void main()
{
int i;
char string[1];\*为什么string后边还要加个括号1*\
char str[3][81];\*定义了一个str[3]的字符数且,可后边的81是什么意思~~~~*\
printf("请输入三个数~~~~\n");
for(i=0;i<3;i++)
gets(str[i]);
if(strcmp(str[0],str[1])>0)
strcpy(string,str[1]);\*既然上边加了1,这里边为什么加上就不对了~~~*\
else
strcpy(string,str[0]);
if(strcmp(str[2],string)>0)
strcpy(string,str[2]);
printf("%s",string);
}

这几点不明白~~~~

char string[1]其实是在定义一个字符的字符数组。

同样的,char string[3][81]定义的是3*81的二维字符数组。在C语言中没有字符串类型,字符串通常都用数组来实现,而二维数组就可以用来实现字符串数组。char string[3][81]就可以理解为,定义了三个字符串,每个字符串最多有81个字符。

strcpy这个函数的参数要求为指针,而单独引用数组名而不给数组维度的时候,就是数组第一个元素的地址,相当于指向第一个元素的指针。