发布日期:2015-12-30 11:17 来源: 标签: 编程语言 C教程 C语言函数 C语言函数参数
本章我们主要学习C语言中如何以数组作为函数参数?下面我们就做一下具体讲解,希望大家多多支持中国站长网络学院。
一、局部变量与全局变量:
在一个函数中定义的变量称为局部变量,其作用域仅限于定义它的函数本身,即使在其他的函数中具有同名的变量,对其值的更改也不影响其他函数中的变量。例如:
        #include "Stdio.h"
        #include "Conio.h"
        void fun(int a)
        {
            a++;
        }
        int main(void)
        {
          int a=1;
          fun(a);
          printf("%d",a);
          getch();
          return 0;
        }
这个的运行结果为1,说明在函数fun()中改变了参数a的值,并不影响main函数中的变量a的值。
二、以数组元素作为参数调用函数时的情形与普通变量相同,例如:
        #include "Stdio.h"
        #include "Conio.h"
        void fun(int a)
        {
            a++;
        }
        int main(void)
        {
          int a[2]={1,2};
          fun(a[0]);
          printf("%d",a[0]);
          getch();
          return 0;
        }
这个程序的输出结果仍然为1。
三、以数组名称作为函数参数调用函数
以一个数组作为函数的参数时,函数形式参数的声明应写成如下的形式:
            void fun(int x[])
以上声明表示:函数fun没有返回值,其参数是一个整型数组,在fun函数中这个数组命名为x。
例如:
        #include "Stdio.h"
        #include "Conio.h"
        #include "Stdlib.h"
        void display(int x[])   /*这样的声明表示参数是一个整数数组*/
        {
          int i;
          for(i=0;i<20;i++) printf("%8d",x[i]);
        }
        int main(void)
        {
          int a[20],i;
          randomize();
          for(i=0;i<20;i++) a[i]=rand();
          display(a);   /*函数调用时的实参是一个数组的名称*/
          getch();
          return 0;
        }
在这个程序中,函数display的功能为显示数组中所有元素的值,因此在main中调用这个函数时使用数组名称作为函数的参数。
四、试分析以下的程序
        #include "Stdio.h"
        #include "Conio.h"
        #include "Stdlib.h"
        void display(int x[])
        {
          int i;
          for(i=0;i<20;i++) printf("%8d",x[i]++);
          printf("\n\n\n");
        }
        int main(void)
        {
          int a[20],i;
          randomize();
          for(i=0;i<20;i++) a[i]=rand();
          display(a);
          display(a);
          getch();
          return 0;
        }
这个程序与(三)中的程序没有太大的区别,只是函数fun中输出数组中的每个元素的值后将其值增1。
但应特别注意的是:在函数fun中改变数组x中的元素值,这个改变同时也改变了main函数中数组a的元素值。表面看来,这与局部变量的机理是矛盾的。
这是因为:数组的名称是指向这个数组的指针。

相关评论

专题信息
    C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。 C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。