数组名与数组元素作函数参数的区别:
数组名作函数参数传的是地址
数据元素作函数的参数传的是该元素的值.
给你个例子,体会一下吧:
#include <iostream>
void test1(int *);
void test2(int);
void test3(int *);
void main()
{
int a[]={1,2,3,4,5};
printf("a[0] = %d \n",a[0]);
//显示初值为1
test1(a);
//传址
printf("a[0] = %d \n",a[0]);
//显示修改后值8
test2(a[0]);
//传值
printf("a[0] = %d \n",a[0]);
//修改对a[0]不起作用仍然显示8
test3(&a[0]);
//传址
printf("a[0] = %d \n",a[0]);
//再次修改成功显示28
getchar();
}
void test1(int *p)
{
p[0]=8;
//*p=8;也是一样
}
void test2(int v)
{
v=18;
}
void test3(int *p)
{
p[0]=28;
//*p=28;也是一样
}
[
本帖最后由 cnfarer 于 2010-1-23 21:43 编辑 ]