问一个C语言的小小小小小问题?

来源:百度知道 编辑:UC知道 时间:2024/05/09 20:55:59
#include <stdio.h>
#define MAXLINE 1000 /*允许的输入行的最大长度*/

int getline(char line[],int maxline);
void copy(char to[],char from[]);

/* 打印最长的输入行 */
main()
{
int len; /*当前行长度*/
int max; /*目前为止发现的最长行的长度*/
char line[MAXLINE]; /*当前的输入行 */
char longest[MAXLINE]; /*用于保存最长的行*/

max=0;
while((len=getline(line,MAXLINE))>0)
if(len>max)
{
max=len;
copy(longest,line);
}
if(max>0) /*存在这样的行*/
printf("%s",longest);
return 0;
}

/*getline函数:将一行读入到s中并返回其长度*/
int getline(char s[],int lim)
{
int c,i;

for(i=0;i<lim-1&&(c=getchar())!=EOF&&c!='\n';++i)
s[i]=c;
if(c=='\n')
{
s[i]=c;
++i;
}
s[i]='\0';
return i;
}

/*copy函数:将form复制到to;这里假定to足够大*/
void copy(char to[],char from[])
{
int i;

那line传递了一个值是多少啊?

line传递的是line[]数组的首地址,它的值就是这个数组的起始地址在内存中的编号,由系统随机分配。

为什么呢?

@$#%@#$%@#$%@#%.......c语言的规定,这里数组名就代表数组首地址....