重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
//代码1
在东辽等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、网站建设 网站设计制作定制网站制作,公司网站建设,企业网站建设,高端网站设计,全网营销推广,成都外贸网站制作,东辽网站建设费用合理。
//要输入多少个数据:6
//1 2 3 4 5 6 (连续输入6个数据)
//1 4 9 16 25 36 (结果)
#includestdio.h
#includestdlib.h //用于调用函数malloc()
void pr(int p[],int j);
int main()
{
int i,j;
int *a; //指向动态内存
printf("要输入多少个数据:");
scanf("%d",j);
//创建动态内存
a=(int *)malloc(j * sizeof(int));
if(a == NULL)
{
printf("\n分配动态内存时出错.\n");
exit(1);
}
for(i=0;ij;i++)
{
scanf("%d",a[i]);
}
pr(a,j);
//原代码for(int i=0;ij;i++)
for(i=0;ij;i++)
{
//原代码printf("%5d\n",a[i]);
printf("%d ",a[i]);
}
return 0;
}
void pr(int p[],int j)
{
int i;
for(i=0 ; ij ; i++)
{
p[i]=p[i]*p[i];
}
}
//
//代码2
#includestdio.h
#includestdlib.h //用于调用函数malloc()
void pr(int p[],int j);
int main()
{
int buf[]={1,2,3,4,5,6};
int i,j;
int *a; //指向动态内存
//计算数组buf的大小
j=sizeof(buf)/sizeof(int);
//创建动态内存
a=(int *)malloc(j * sizeof(int));
if(a == NULL)
{
printf("\n分配动态内存时出错.\n");
exit(1);
}
for(i=0;ij;i++)
{
a[i]=buf[i];
}
pr(a,j);
printf("原数组里的数据: ");
for(i=0;ij;i++)
{
printf("%d ",buf[i]);
}
printf("\n");
printf("运算后的数据: ");
for(i=0;ij;i++)
{
printf("%d ",a[i]);
}
return 0;
}
void pr(int p[],int j)
{
int i;
for(i=0 ; ij ; i++)
{
p[i]=p[i]*p[i];
}
}
//
c语言可以用数组元素的方法或指针的方法调用数组。
int a[100],i;
for(i=0;i100;i++)
scanf("%d",a[i]);
for(i=0;i100;i++)
printf("%d ",a[i]);
也可以:
int a[100],*p;
for(p=a;pa+100;p++)
scanf("%d",p);
for(p=a;pa+100;p++)
printf("%d ",*p);
来传送子函数中的数组有多种方法——可以通过函数返回值返回地址传递数组;也可以通过函数输入参数来传递数组;还可以通过全局变量来传递数组。
子函数本身可以直接在作用域中进行调用。
1、通过函数返回值返回地址传递数组。
声明函数时需要声明函数返回值类型为对应数组的地址,此时可以返回数组的地址,结合数组元素的地址关系可以传递整个数组,同时可以根据数组的特性传递多个参数。
2、通过输入参数传递数组。
声明函数时提供空输入参数,调用函数时提供目标数组,即可以通过该数组调用子函数中的数组,该方法也可以用于传递多个参数。
3、通过全局变量来传递数组。
声明全局变量用于存储子函数中的数组,此时可以在全局变量作用域中读取调用子函数的数组。
注意:子函数是C语言模块化编程思想的核心,其方法是通过输入接口和输出接口实现对黑盒的调用,故对其内部数据的输入和调用也需要通过输入接口、输出接口和程序的公共区域实现。
调用时:
sum=fun1(a[N]);
printf("sum=%d\n",sum);
定义中:
int fun1(int a[N],int i)
{
int s=0;
for(i=0;iN;i++)
s=s+a[i];
return(s);
}
注意定义的函数int fun1(int a[N],int i),在调用函数的时候语法是sum=fun1(int a[N],int i);错误在于调用函数时()内的参数应该和定义时一样
因为main()函数中的function_a函数声明和实际的情况不一样,真实情况是该函数有三个参数,而你却将其声明为没有参数,所以在调用时,传入参数会有警告。
由于function_a的定义在main()之前,所以去掉主函数中的声明即可,或者将声明改为正确形式。
不能够返回整个数组,只能返回数组中的某个值。如果数组在函数内部定义,也不能直接返回数组名(临时变量在函数结束时会释放)。一般写程序不会把数组作为返回值返回,想要返回整个数组,可以用指针来实现。