用数组名作函数参数与用变量名作函数参数

2016-12-28 19:16:59来源:cnblogs.com作者:海风666人点击

第七城市

  

C语言调用函数时虚实结合的方法都是采用“值传递”的方式,当用变量名作为函数参数时传递的是变量的值;当用数组名作为函数参数时,由于数组名代表的是数组首元素的地址,因此传递的值是地址,所以要求形参为指针变量。

  在用数组名作为函数实参时,既然实际上相应的形参是指针变量,为什么还允许使用形参数组的形式呢?

这是因为在C语言中用下标法和指针法都可以访问一个数组(如果有一个数组a,则a[i]和*(a+i)无条件等价),用下标法表示比较直观,便于理解,因此许多人愿意用数组名作形参,以便与实参数组相对应。从应用的角度看,用户可以认为有一个形参数组,它从实参数组那里得到起始地址,因此形参数组和实参数组共占同一段内存单元,在调用函数期间,如果改变了形参数组的值,也就改变了实参数组的值。

注意:实参数组名代表的是一个固定的地址,或者说是一个指针常量,但形参数组名并不是一个固定的地址,而是按指针变量处理。

第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台