c语言用户自定义的变量名,c语言变量的作用域和自定义数据类型 & 用户自定义数据类型.ppt...

c语言变量的作用域和自定义数据类型

局部变量和全局变量 全局变量:在函数外定义的变量 局部变量:在函数内定义的变量 局部变量和全局变量 两点说明: ①不同函数中的局部变量可以同名,全局变量与局部变量也可以同名,但它们代表不同的变量,在内存中占有不同的存储空间。 ②局部变量起作用时,同名全局变量不起作用。 局部变量和全局变量 #include int a = 3 , b = 5 ; max( int a , int b ) { int c ; c = a>b ? a : b ; return (c) ; } void main( ){ int a=8 ; printf ( "%d\n", max( a , b ) ) ; } 全局变量 int p=1,q=2; float f1( int a) {……} char c1,c2; float f2( int b) {……} void main( ) {……} 函数间数据传递的渠道: 主调函数 (普通变量参数) 被调函数 主调函数 (函数返回值) 被调函数 主调函数 (数组参数/指针变量参数) 被调函数 主调函数 (全局变量) 被调函数 全局变量应用举例 有一个一维数组,内放10个学生的成绩,写一个函数,求出平均分、最高分和最低分。 #include float Max, Min ; float average ( float array [ ] , int n ) { int i ; float aver , sum = array [0] ; Max = Min = array [ 0 ] ; for( i=1 ; i Max ) Max=array[i]; else if ( array[i] < Min ) Min=array[i]; sum=sum+array[i] ; } aver=sum/n; return ( aver ) ; } 全局变量应用举例 void main( ) { float ave ; float score[10] , i ; for( i=0 ; i<10 ; i++ ) scanf ( "%f", &score[i] ) ; ave=average ( score , 10 ) ; printf ( "max=%6.2f\n" , Max) ; printf ( "min=%6.2f\n" , Min ) ; printf (" average = %6.2f \n" , ave ) ; } 二、 变量的存储类别 变量按其生存的时间(生存期)划分为动态存储变量和静态存储变量。 静态变量 类别:全局变量和静态局部变量; 静态局部变量定义:static 变量类型 变量名 运行期间:从定义到程序结束 赋初值:只在编译时赋初值一次(数值型默认初值 为0) ,(字符型默认初值为空字符) 动态变量 类别: auto型和register型局部变量; 定义:[auto/register] 变量类型 变量名 运行期间:函数运行期间 赋初值:每调用函数一次,赋初值一次。 局部静态变量应用举例1 #include f(int a) { auto int b=0 ; static int c=3 ; b=b+1; c=c+1; return (a+b+c); } void main( ) { int a=2,i; for(i=0;i<3;i++) printf("%d ",f(a)); } 局部静态变量应用举例2 #include void fun( ) { int a=2; static int b=4; a=a+2; b+=2; printf("a=%d b=%d\n",a,b); } void main( ) { fun( ); fun( ); fun( ); } 局部静态变量应用举例3 利用静态局部变量求阶乘 #include int fac ( int n ) { static int f = 1 ; f = f * n ; return (f ) ; } void main ( ) { i

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值