正在加载图片...
靳润昭C语言教程讲义 2001年2月17日 maino b[5] printf( \ input 5 numbers: \n") scanf("%d",&b[i]) printf( initial values of array b are: \n) for(i=0;i<5;i++) printf(%d", b[i]) (b,5) printf f \nlast values of array b are: \n") for(i=0;i<5;i++) printf(%d" b[il) 本程序nzp函数形参数组a没有给出长度,由n动态确定该长度。在main函数中,函 数调用语句为nzp(b,5),其中实参5将赋予形参n作为形参数组的长度。 d.多维数组也可以作为函数的参数。在函数定义时对形参数组可以指定每一维的 长度,也可省去第一维的长度。因此,以下写法都是合法的。 int MA(int a[3][10]) int ma(inta[][10])。 88局部变量和全局变量 在讨论函数的形参变量时曾经提到,形参变量只在被调用期间才分配内存单元,调用结 束立即释放。这一点表明形参变量只有在函数内才是有效的,离开该函数就不能再使用了。 这种变量有效性的范围称变量的作用域。不仅对于形参变量,C语言中所有的量都有自己的 作用域。变量说明的方式不同,其作用域也不同。C语言中的变量,按作用域范围可分为两 种,即局部变量和全局变量。 881局部变量 局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内, 离开该函数后再使用这种变量是非法的。 例如 int f1(int a /*函数f1*/ int b.c a,b,C有效 第17页靳润昭 C 语言教程讲义 2001 年 2 月 17 日 第17页 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,5); printf("\nlast values of array b are:\n"); for(i=0;i<5;i++) printf("%d ",b[i]); } 本程序 nzp 函数形参数组 a 没有给出长度,由 n 动态确定该长度。在 main 函数中,函 数调用语句为 nzp(b,5),其中实参 5 将赋予形参 n 作为形参数组的长度。 d. 多维数组也可以作为函数的参数。在函数定义时对形参数组可以指定每一维的 长度,也可省去第一维的长度。因此,以下写法都是合法的。 int MA(int a[3][10]) 或 int MA(int a[][10])。 8.8 局部变量和全局变量 在讨论函数的形参变量时曾经提到,形参变量只在被调用期间才分配内存单元,调用结 束立即释放。这一点表明形参变量只有在函数内才是有效的,离开该函数就不能再使用了。 这种变量有效性的范围称变量的作用域。不仅对于形参变量,C语言中所有的量都有自己的 作用域。变量说明的方式不同,其作用域也不同。C语言中的变量,按作用域范围可分为两 种,即局部变量和全局变量。 8.8.1 局部变量 局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内, 离开该函数后再使用这种变量是非法的。 例如: int f1(int a) /*函数 f1*/ { int b,c; …… } a,b,c 有效
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有