形参数组名可以和实参一样吗
时间: 2023-12-01 12:02:19 浏览: 164
形参和实参是不同的概念,它们在函数的定义和调用中起到不同的作用。
形参是函数定义中的参数,用来接收传递给函数的实参,它们是函数内部使用的局部变量。形参是在函数定义时声明的,可以有默认值。
实参是函数调用时传递给函数的值或变量,用来给形参赋值。实参是在函数调用时传递的,可以是常量、变量、表达式或函数等。
形参数组名可以和实参一样,但是它们在语义上是不同的。形参数组名是一个指向数组的指针,用来接收传递给函数的数组。实参是一个数组变量,它会被传递给形参数组名,通过形参数组名可以访问数组中的元素。
因此,形参数组名和实参虽然可以相同,但是它们的含义和作用是不同的。
相关问题
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()的参数,实现了实参与形参双向的值传递。
D. 用数组名作f()的参数,实现了实参与形参双向的值传递。是错的。
数组名作为函数参数时,传递的是数组的首地址,即数组首元素的地址,这是一种地址传递,不是值传递。因此,对形参数组的修改会影响到实参数组,但是对形参数组指针的修改不会影响到实参数组指针。因此,选项 D 是错误的。
选项 A、B、C 都是正确的。
阅读全文