思维简图巧学C语言(函数)

c/c++

浏览数:326

2019-3-30

通过前面指针的讲解,有同学问我拉,函数部分有些不理解,没问题,我们来对函数部分来点讲解,不过有同学理解上有些困难,不过学长建议要坚持学下去,后续讲解学长精心配图,利用思维导图的方式来帮助理解。

函数的概述

框架.png

数组与函数

数组与函数.png

数组名作函数参数

#include <stdio.h>
float aver(float a[5])
{
    int i;
    float average, sum=a[0];
    for(i=1; i<5; i++) //循环求和
        sum += a[i];
    average = sum/5;//平均数
    return average;//返回值
}

int main()
{
    float scores[5], average;
    int i;
    printf("Input 5 scores:\n");
    for(i=0; i<5; i++)
        scanf("%f", &scores[i]);
    average = aver(scores);
    printf("Average score is %5.2f", average);
    return 0;
}

实参与形参宽度不一致的函数调用

void nzp(int a[7])
{
  int i;
  for(i=0;i<7;i++)
  {
    if(a[i]<0)a[i]=0;
    printf("%d",a[i]);
  }
}
main()
{
  int b[5],i;
  for(i=0;i<5;i++)
    scanf("%d",&b[i]);
  for(i=0;i<5;i++)
    printf("%d",b[i]);
  nzp(b);
  for(i=0;i<5;i++)
    printf("%d",b[i]);
}

形参数组a和实参数组b的长度不一致,编译能够通过,但数组a的元素a[5],a[6],a[7]无意义

总结

  1. 形参数组和实参数组的类型必须一致,否则将引起错误。
  2. 形参数组和实参数组的长度可以不相同,因为在调用时,只传送首地址而不检查形参数组的长度。
  3. 在函数形参表中,允许不给出形参数组的长度,