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

  

  C语言调用函数时虚实结合的方法都是采用“值传递”的方式,当用变量名作为函数参数时传递的是变量的值

当用数组名作为函数参数时,由于数组名代表的是数组首元素的地址,因此传递的值是地址,所以要求形参指针变量

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

  这是因为在C语言中用下标法指针法都可以访问一个数组(如果有一个数组a,则a[i]和*(a+i)无条件等价),用下

标法表示比较直观,便于理解,因此许多人愿意用数组名作形参,以便与实参数组相对应。从应用的角度看,用户可以认为

有一个形参数组,它从实参数组那里得到起始地址,因此形参数组和实参数组共占同一段内存单元,在调用函数期间,如果

改变了形参数组的值,也就改变了实参数组的值。

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

posted @ 2016-12-28 12:57  南宝  阅读(1430)  评论(0编辑  收藏  举报