C 数组名作为函数参数
1、数组名作为函数参数——数组名代表着数组在内存中起始地址,所以,可以使用数组名作为实参,传递给函数中的指针类型的参数。
2、例子:
void test( int *a )
{
*(a+1)=*a + *(a+1);
}
int main()
{
int x=0;
int y[2]={1,2};
test( y );
x=y[0]+y[1];
}
地址 | 数组内容 |
1000 | 1 |
1001 | 2 |
例子分析:
(1)首先,我们定义了一个函数test,同时参数部分定义了一个整型的指针变量a作为形参。
(2)在main函数中,定义了一个整型变量x并赋初值0,同时,再定义了一个整型数组y并赋初值1和2。
(3)然后,调用函数test,并将数组y作为参数传递给形参a。
(4)在函数test中通过"*"运算符指向形参a中地址,通过上面的表格,可以看到起始地址是1000,而对应的数组内容是1,所以,*a的操作就是取出了1。
然后,再执行*(a+1)就是将a中的地址1000加上1结果等于1001,所以,就取出了1001对应的数组内容2。
然后,再执行1+2结果等于3,再保存回*(a+1)所指向的内存单元中,所以,数组中的2变为3。
(5)当test函数调用完以后,再执行y[0]+y[1],而当前y[0]中的值是1,而y[1]中的值是3,所以,就是1+3结果等于4,再赋给整型变量x,所以,x里面最后的值是4。
非常好,现在,我们已经掌握了C中的“数组名作为函数参数”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用“数组名作为函数参数”去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”。
不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)