C语言中二维字符数组和指针的问题
刚开始看这部分内容,新人提出一些小白问题,高手见笑了。#include<stdio.h>#include<string.h>char*fun(char(*s)[100],...
刚开始看这部分内容,新人提出一些小白问题,高手见笑了。
#include<stdio.h>
#include<string.h>
char *fun(char (*s)[100],int num)
{
int i;
char *min;
min=s[0];
for(i=0;i<num;i++)
if(strlen(min)>strlen(s[i]))
min=s[i];
return min;
}
void main()
{
char str[10][100],*min;
int n,i=0;
printf("Input strings with '*' as the end:\n");
gets(str[i]);
puts(str[i]);
while(!strcmp(str[i],"*")==0)
{i++;gets(str[i]);puts(str[i]);}
n=i;
min=fun(str,n);
printf("min=%s\n",min);
}
以这个程序为例子:
1.fun函数定义中char *s[100] 和 char(*s)[100]区别在哪里?
2.主函数中,只是定义了 str[10][100] ,为什么就可以直接 gets(str[i])? str[]是什么?
谢谢了 展开
#include<stdio.h>
#include<string.h>
char *fun(char (*s)[100],int num)
{
int i;
char *min;
min=s[0];
for(i=0;i<num;i++)
if(strlen(min)>strlen(s[i]))
min=s[i];
return min;
}
void main()
{
char str[10][100],*min;
int n,i=0;
printf("Input strings with '*' as the end:\n");
gets(str[i]);
puts(str[i]);
while(!strcmp(str[i],"*")==0)
{i++;gets(str[i]);puts(str[i]);}
n=i;
min=fun(str,n);
printf("min=%s\n",min);
}
以这个程序为例子:
1.fun函数定义中char *s[100] 和 char(*s)[100]区别在哪里?
2.主函数中,只是定义了 str[10][100] ,为什么就可以直接 gets(str[i])? str[]是什么?
谢谢了 展开
2个回答
展开全部
char *s[100]表示数组s[100]是指针类型的,每个数组元素都相当于一个指针变量,都可以指向一个字符型变量;
char(*s)[100]表示s是一个指针变量,它指向包含100个字符型元素的一维数组;
str[]表示一个字符数组;这题中,str[i]=str[0],而gets函数表示得输入字符串,输入没有限制,直到输入换行符或者其他的结束标识,输入才结束;输入的字符串就存放在str[10][100]这个数组中,str[0]表示将输入的第一个字符存在数组的首位元素中,其他的字符按数组顺序存放。
char(*s)[100]表示s是一个指针变量,它指向包含100个字符型元素的一维数组;
str[]表示一个字符数组;这题中,str[i]=str[0],而gets函数表示得输入字符串,输入没有限制,直到输入换行符或者其他的结束标识,输入才结束;输入的字符串就存放在str[10][100]这个数组中,str[0]表示将输入的第一个字符存在数组的首位元素中,其他的字符按数组顺序存放。
展开全部
1.fun函数定义中char *s[100] 和 char(*s)[100]区别在哪里?
char *s[100]; 这个叫指针数组,说白了就是本质上讲是数组,只不过数组的每个元素都是指针
char(*s)[100];这个叫数组指针,说白了本质上是一个指针,只不过指针指向的是一个数组
2.主函数中,只是定义了 str[10][100] ,为什么就可以直接 gets(str[i])? str[]是什么?
这里str是一个二维数组,所以str[i],只有第一维的话,就相当于上面的数组指针,本质上是指针
char *s[100]; 这个叫指针数组,说白了就是本质上讲是数组,只不过数组的每个元素都是指针
char(*s)[100];这个叫数组指针,说白了本质上是一个指针,只不过指针指向的是一个数组
2.主函数中,只是定义了 str[10][100] ,为什么就可以直接 gets(str[i])? str[]是什么?
这里str是一个二维数组,所以str[i],只有第一维的话,就相当于上面的数组指针,本质上是指针
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询