| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 252 人关注过本帖
标题:数组[]的问题
只看楼主 加入收藏
han8716
Rank: 1
等 级:新手上路
帖 子:76
专家分:3
注 册:2012-2-12
结帖率:90%
收藏
已结贴  问题点数:15 回复次数:3 
数组[]的问题
#include<stdio.h>
#define MAXLINE 1000
int getline(char line[],int maxline);
void copy(char to[],char from[]);
main()
{
    int len,max=0;
    char line[MAXLINE],longest[MAXLINE];
        while((len=getline(line,MAXLINE))>0)
            if(len>max)
            {
                max=len;
            copy(longest,line);
            }
            if(longest>0)
                printf("%s",longest);
            return 0;
}
int getline(char s[],int lim)
{
    int i,c;
    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;
}
void copy(char to[],char from[])
{
    int i=0;
    while((to[i]=from[i])!='\0')
        i++;
}
这是一个打印输出中最长行的 问题如下1while((len=getline(line,MAXLINE))>0) 这里调用了getline函数 但是getline里的line是数组,怎么不加[] copy(longest,line)里的longest也没加[] 为什么 加上怎么才能对 我自己加了 没弄对 2。[]里什么时候写东西 什么时候不写 还有就是char line[MAXLINE],longest[MAXLINE]里为什么写的是MAXLINE
搜索更多相关主题的帖子: max void include return 
2012-03-23 05:40
feng1990
Rank: 2
等 级:论坛游民
帖 子:5
专家分:26
注 册:2010-8-28
收藏
得分:15 
1,getline里面的line是数组,可是在数组调用的使用给的是首地址指针,当一个函数调用里面直接使用数组名称的时候,数组名称就会沦为指针。
2,char line[MAXLINE] 里面的MAXLINE就是在前面定义的宏变量,这样所以的效果是便于修改,不过对于宏定义还有不同的作用,如果需要修改数组长度的时候,又没有定义宏变量,你需要修改的地方就很多,但是定义了宏变量,你只需要修改一个地方就可以达到修改里面使用MAXLINE的所以地方。这样解释行否?
2012-03-23 08:44
han8716
Rank: 1
等 级:新手上路
帖 子:76
专家分:3
注 册:2012-2-12
收藏
得分:0 
回复 2楼 feng1990
解释的太到位了 谢谢你
2012-03-23 14:10
天涯漫
Rank: 2
等 级:论坛游民
帖 子:31
专家分:57
注 册:2012-3-8
收藏
得分:0 
哈哈,亲正在看C程序设计语言这本书啊。。。志同者,,,哈哈
2012-03-23 14:44
快速回复:数组[]的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021441 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved