7.4 数组作为函数参数
(1)数组元素作为函数实参
(2)数组名作为函数实参
void changevalue(int b[])
{
b[3] = 70; //这个是给内存地址赋值,所以这个值会被带回给调用者
b[4] = 45;
return;
}
int main()
{
int a[5]; //a[0]-a[4];
a[0] = 87;
a[1] = 70;
a[2] = 98;
a[3] = 92;
a[4] = 78;
changevalue(a);
for(int i = 0;i < 5;i++)
{
printf("a[%d] = %d\n",i,a[i]);
}
}
void changevalue(int b[5]) //b[0]-b[4]
{
b[3] = 70; //这个是给内存地址赋值,所以这个值会被带回给调用者
b[4] = 45;
return;
}
int main()
{
int a[5]; //a[0]-a[4];
a[0] = 87;
a[1] = 70;
a[2] = 98;
a[3] = 92;
a[4] = 78;
changevalue(a);
for(int i = 0;i < 5;i++)
{
printf("a[%d] = %d\n",i,a[i]);
}
}
void changevalue(int b[9]) //b[0]-b[8]
{
b[3] = 70; //这个是给内存地址赋值,所以这个值会被带回给调用者
b[4] = 45;
b[5] = 65; //不属于你,你非要往这个内存写内容,很有可能导致崩溃
return;
}
int main()
{
int a[5]; //a[0]-a[4];
a[0] = 87;
a[1] = 70;
a[2] = 98;
a[3] = 92;
a[4] = 78;
changevalue(a);
for(int i = 0;i < 5;i++)
{
printf("a[%d] = %d\n",i,a[i]);
}
}
说明:
(3)用多维数组名作为函数实参
void changevalue(int b[][8])
b[0][2] = 15;
return;
}
int main()
{
int a[5][8]; //一维a[0]-a[4],二维a[0]-a[7]
a[0][2] = 12;
changevalue(a);
printf("a[0][2] = %d\n",a[0][2]);
return;
}
void changevalue(int b[5][8])
b[0][2] = 15;
return;
}
int main()
{
int a[5][8]; //一维a[0]-a[4],二维a[0]-a[7]
a[0][2] = 12;
changevalue(a);
printf("a[0][2] = %d\n",a[0][2]);
return;
}