一般函数作参数和数组名作参数区别

此次区别的分析来源于实践之后…

代码示例:
一般函数作参数:

#include<stdio.h>
void main()
{
    
    
float a,b;
float add(float a,float b);
scanf("%f%f",&a,&b);
add(a,b);
printf("输出主函数的a=%f\n",a);
}
float add(float a,float b)
{
    
    
a=a+b;
printf("输出子函数的a=%f\n",a);
return a;
}

运行结果:
在这里插入图片描述

数组名作函数参数

#include<stdio.h>
void main()
{
    
    
float a[1],b;
float add(float a[],float b);
scanf("%f%f",&a[0],&b);
add(a,b);
printf("输出主函数的a=%f\n",a[0]);
}
float add(float a[],float b)
{
    
    
a[0]=a[0]+b;
printf("输出子函数的a=%f\n",a[0]);
}

运行结果:
在这里插入图片描述
原理解释:
由代码一输出结果可知,一般函数作参数(在子函数中),其形参数据不能够改变实参数据的。所以输出主函数的a=3.000000
由代码二输出结果可知,数组名作函数参数(尤其在子函数中)可通过形参(指针变量)是可以改变实参数据的。这突显了数组的普适性,功能性强优于其他一般函数。(个人拙见)

猜你喜欢

转载自blog.csdn.net/yooppa/article/details/113845379