c语言#include <stdio.h> void fun (int a[],int n){int i,t;for(i=0;i<n/2;i++)

{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){int k[10]={1,2,3,4,5,6,7,8,9,10},i;fun(k,5);for(i=2;i<8,i++)printf("%d",k[i]);printf("\n");我觉得这个是传值的,求大神指导

第1个回答  2012-09-18
觉得这个是传指针的吧, 就是传地址. int a[], 和int * a,一样吧.
第2个回答  2012-09-18
fun 函数是 用来调换的 {t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
fun 函数入口是数组的地址 void fun (int a[],int n)
第3个回答  2012-09-18
你定义的数组不是全局变量
第4个回答  推荐于2018-05-17
fun的第一参数是int[]类型,是一个int型数组名,可以理解为int类型的指针。
对于这种类型的变量来说,并不存在变量自己的值,只有变量保存(或指向)的数据才有值。
对C语言来说,数组的值指数组中存放的数据,指针的值指指针指向的数据单元中的变量的值。数组和指针自身没有值,只有地址的概念。因此,经常避免提到“数据的值”这一类模棱两可的说法。
函数调用时进行虚实结合,a得到的是k的地址。如果非要把地址也说成一种值从字面上也说得过去,但这不是C语言里经常说的“值”的概念。本回答被提问者和网友采纳