C语言 数组名作为函数参数

  1、数组名作为函数参数

    数组名作为函数参数,在C语言中,我们可以使用数组的名字作为(实际参数)传递给函数中的(形式参数),

    而在这个过程中,数组名就代表着数组在内存中的地址,即数组的指针,所以,把数组名作为参数传递,

    其实,就是传递了数组的指针。

    

   2、例子

        void test( int *a )

        {

         *(a+1)=*a + *(a+1);

        }

        int main()

        {

         int x=0;

         int y[2]={4,5};         

         test( y );

         x=y[0]+y[1];   

        }

 

地址 数组内容
1000
1001
   
   

 

 

 

 

 

例子分析:

(1)首先,我们定义了一个函数test,同时参数部分定义了一个整型的指针变量a作为形参。

(2)在main函数中,定义了一个整型变量x并赋初值0,同时,再定义了一个整型数组y并赋初值4和5。

(3)然后,调用函数test,并将数组y作为参数传递给形参a。

(4)在函数test中通过"*"运算符指向形参a中地址,通过上面的表格,可以看到起始地址是1000,而对应的数组内容是4,

   所以,*a 的操作就是取出了4

   然后,再执行*(a+1)就是将a中的地址1000加上1结果等于1001,所以,就取出了1001对应的数组内容5。

   然后,再执行4+5结果等于9,再保存回*(a+1)所指向的内存单元中,所以,数组中的5变为9

(5)当test函数调用完以后,再执行y[0]+y[1],而当前y[0]中的值是4,而y[1]中的值是9,

   所以,就是4+9结果等于13,再赋给整型变量x,所以,x里面最后的值是13。

 

=======================================================================

非常好,现在,我们已经掌握了C语言中的(数组名作为函数参数)但是,如何去运行用它呢?

所以,我们就需要通过下方的链接,进入到C语言的代码训练中,然后,通过实践去加深对该知识点的理解与运用。

>>>下载训练环境与使用说明(使用真实的开发环境,结合游戏闯关进行 编程训练)