函数与字符数组

/***********函数*************/
#include <stdio.h>
int power(int m,int n);
/*测试power函数*/
main()
{
 int i;
 for(i=0;i<10;++i)
  printf("%d %d %d\n",i,power(2,i),power(-3,i));
 return 0;
}
/*power函数:求底数的n次幂;其中n>=0*/
int power(int base, int n)
{
 int i,p;
 p = 1;
 for(i=1;i<=n;++i)
  p = p * base;
 return p;
}
 该函数没什么需要过多解释的地方,简单说一下形参和实参吧。power函数的第一行语句: int power(int base, int n)  声明参数的类型、名字以及该函数返回结果的类型。power函数的参数使用的名字只在power函数内部有效,对其他任何函数都是不可见的:其他函数可以使用与之相同的参数名字而不会引起冲突。变量i与p也是这样:power函数中的i与main函数中的i无关。
 我们通常把函数定义中圆括号内列表中出现的变量称为形式参数,而把函数调用中与形式参数对应的值称为实际参数。
/****************************************************/
/********字符数组*********/ 
#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函数:将from复制到to;这里假定to足够大*/
 void copy(char to[], char from[])
 {
  int i;
  i=0;
  while((to[i] = from[i]) != '\0')
   ++i;
 }
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2019-11-09 17:41  烟火流沙  阅读(199)  评论(0编辑  收藏  举报