void f(int a[], int n) { int i; for(i=0;i<n;i++) a[i]=i; } int main( ) { int a[100],n=30; f(a,n); ... }. f函数头改为int f(int *a, int n),无需其它改变,效果完全一样。 B. main函数中增加 int *p=a; 将 f(a,n);改为f(p,n);,效果完全一样。 C. 用数组名作f()的参数,则main()中的数组与f()中的数组是同一数组。 D. 用数组名作f()的参数,实现了实参与形参双向的值传递。
时间: 2024-01-29 20:02:47 浏览: 81
java中for(int i= 0; i<=10;i=i++)System.out.print(i);为什么无限输出0
D. 用数组名作f()的参数,实现了实参与形参双向的值传递。是错的。
数组名作为函数参数时,传递的是数组的首地址,即数组首元素的地址,这是一种地址传递,不是值传递。因此,对形参数组的修改会影响到实参数组,但是对形参数组指针的修改不会影响到实参数组指针。因此,选项 D 是错误的。
选项 A、B、C 都是正确的。
阅读全文