正在加载图片...
靳润昭C语言教程讲义 2001年2月17日 例5.4改为例5.6的形式。 【例8.9】题目同8.7例。改用数组名作函数参数 void nzp (int a[5) int 1 printf( \nvalues of array a are: \n") for(i=0;i<5;i+) if(ali]<o) ali]=0 printf(%d",ali]) main O int b[5],i printf(" \input 5 numbers: \n") for(i=0;i<5;i++) scanf(%d", &b[]) printf( initial values of array b are: \n") for(i=0;i<5;i++) printf(%d,b[il printf( nlast values of array b are: \n") for(i=0;i<5;i++) printf(%d ", blil) 本程序中函数nzp的形参为整数组a,长度为5。主函数中实参数组b也为整型,长度 也为5。在主函数中首先输入数组b的值,然后输出数组b的初始值。然后以数组名b为实 参调用nzp函数。在nzp中,按要求把负值单元清0,并输出形参数组a的值。返回主函 数之后,再次输出数组b的值。从运行结果可以看出,数组b的初值和终值是不同的,数组 b的终值和数组a是相同的。这说明实参形参为同一数组,它们的值同时得以改变。 用数组名作为函数参数时还应注意以下几点: 形参数组和实参数组的类型必须一致,否则将引起错误。 b.形参数组和实参数组的长度可以不相同,因为在调用时,只传送首地址而不检 查形参数组的长度。当形参数组的长度与实参数组不一致时,虽不至于出现语 法错误(编译能通过),但程序执行结果将与实际不符,这是应予以注意的。 【例8.10】如把例8.9修改如下 void nzp (int a[8]) printf( \nv values of array aare for(i=0;i<8;i+) 第15页靳润昭 C 语言教程讲义 2001 年 2 月 17 日 第15页 例 5.4 改为例 5.6 的形式。 【例 8.9】题目同 8.7 例。改用数组名作函数参数。 void nzp(int a[5]) { int i; printf("\nvalues of array a are:\n"); for(i=0;i<5;i++) { if(a[i]<0) a[i]=0; printf("%d ",a[i]); } } main() { int b[5],i; printf("\ninput 5 numbers:\n"); for(i=0;i<5;i++) scanf("%d",&b[i]); printf("initial values of array b are:\n"); for(i=0;i<5;i++) printf("%d ",b[i]); nzp(b); printf("\nlast values of array b are:\n"); for(i=0;i<5;i++) printf("%d ",b[i]); } 本程序中函数 nzp 的形参为整数组 a,长度为 5。主函数中实参数组 b 也为整型,长度 也为 5。在主函数中首先输入数组 b 的值,然后输出数组 b 的初始值。然后以数组名 b 为实 参调用 nzp 函数。在 nzp 中,按要求把负值单元清 0,并输出形参数组 a 的值。 返回主函 数之后,再次输出数组 b 的值。从运行结果可以看出,数组 b 的初值和终值是不同的,数组 b 的终值和数组 a 是相同的。这说明实参形参为同一数组,它们的值同时得以改变。 用数组名作为函数参数时还应注意以下几点: a. 形参数组和实参数组的类型必须一致,否则将引起错误。 b. 形参数组和实参数组的长度可以不相同,因为在调用时,只传送首地址而不检 查形参数组的长度。当形参数组的长度与实参数组不一致时,虽不至于出现语 法错误(编译能通过),但程序执行结果将与实际不符,这是应予以注意的。 【例 8.10】如把例 8.9 修改如下: void nzp(int a[8]) { int i; printf("\nvalues of array aare:\n"); for(i=0;i<8;i++)
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有