【正确答案】
C
【答案解析】在函数调用时,系统为形参准备,并把实参的值赋值到形参空间中。在调用结束后,形参空间将被释放,而实参的值保持不变,这就是传值方式。传值方式中实参与形参之间的数据传递是单向的,只能由实参传递给形参,因而即使形参的值在函数执行过程中发生了变化,也不会影响到实参值。在C语言中,当参数类型是非指针类型和非数组类型时,均采用传值方式。
传址方式把实参的地址赋值给形参,这样形参就可以根据地址值访问和更改实参的内容,从而实现双向传递。当参数类型是指针类型或数组类型时,均采用传址方式。
区别于参数传值方式和返回值传递方式,传址方式具有以下明显的优势。
(1)参数传值方式是主调函数与被调函数之间的单向数据传递方式,而参数的传址方式则实现了二者之间的双向数据传递。
(2)函数的返回值每次只能把一个数据项从被调函数传递到主调函数,而参数的传址方式却可一次性地传递多个数据项到主调函数。