#include "string.h" /* strcmp、strcpy函数均在string.h中定义 */
void main()
{
char string[20]; /* 存最大字符串 */
char str[3][20]; /* 三个字符串 */
int i;
for(i=0;i<3;i++)
gets(str[i]); /* 输入三个字符串 */
if (strcmp(str[0],str[1]) > 0) strcpy(string,str[0]);
else strcpy(string,str[1]);
if (strcmp(str[2],string) > 0) strcpy(string,str[2]);
printf("\nthe largest string is: \n%s\n",string);
}
我知道这是一个很典型的三个字符串输出最大字符串的程序
char str[3][20]; 定义了一个字符类型的二维数组 ,通过数组名str[0]可以调用的是第一个字符串 后面的20为字符串的长度。这种定义方法跟数组的指针有关系
C Prime Plus 有关于这个的讲解 类似于这样的程序
在第十章字符串和字符串函数有,这本书讲的特别透彻,希望能帮到您
那只能理解为是这么引用的了,谢了
因此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相同但是用处不同
同理可以推导二维数组。
同时你可以尝试下敲个代码,输出它们的地址,一看就明白了