版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Chap 5 函数函数 5.1 计算圆柱体积计算圆柱体积5.2 数字金字塔数字金字塔5.3 复数运算复数运算 本章要点本章要点n函数的作用?如何确定函数功能?函数的作用?如何确定函数功能?n怎样定义函数?如何调用函数?定义函数与声怎样定义函数?如何调用函数?定义函数与声明函数有何区别?明函数有何区别?n什么是函数的参数?怎样确定函数的参数?什么是函数的参数?怎样确定函数的参数?n在函数调用时,参数是如何传递数据的?在函数调用时,参数是如何传递数据的?n变量与函数有什么关系?如何使用局部变量和变量与函数有什么关系?如何使用局部变量和全局变量?全局变量?n什么是静态变量?什么是静态变量?5.1 计
2、算圆柱体积计算圆柱体积n5.1.1 程序解析程序解析n5.1.2 函数的定义函数的定义n5.1.3 函数的调用函数的调用n5.1.4 函数程序设计函数程序设计5.1.1 程序解析计算圆柱体积程序解析计算圆柱体积 例例5-1 输入圆柱体的高和半径,求圆柱体积,输入圆柱体的高和半径,求圆柱体积,volume=*r2*h。要求定义和调用函数要求定义和调用函数cylinder (r, h )计算圆计算圆柱体的体积。柱体的体积。 例例5-1源程序源程序/* 计算圆柱体积计算圆柱体积 */#include double cylinder (double r, double h); /* 函数声明函数声明*
3、/int main( void ) double height, radius, volume;printf (Enter radius and height: );scanf (%lf%lf, &radius, &height); /* 调用函数,返回值赋给调用函数,返回值赋给volume */volume = cylinder (radius, height );printf (Volume = %.3fn, volume);return 0;例例5-1源程序源程序/* 定义求圆柱体积的函数定义求圆柱体积的函数 */double cylinder (double r, double h)d
4、ouble result;result =3.1415926 * r * r * h; /* 计算体积计算体积 */return result; /* 返回结果返回结果 */Enter radius and height: 3.0 10Volume = 282.743例5-1源程序#include double cylinder (double r, double h); /* 函数声明函数声明*/int main( void ) double height, radius, volume;printf (Enter radius and height: );scanf (%lf%lf, &r
5、adius, &height);volume = cylinder (radius, height );printf (Volume = %.3fn, volume);return 0;double cylinder (double r, double h) double result;result =3.1415926 * r * r * h; return result;Enter radius and height: 3.0 10Volume = 282.743问题: 函数是如何运行的?5.1.2 函数的定义函数的定义 n函数是指完成一个特定工作的独立程序模块。函数是指完成一个特定工作的
6、独立程序模块。n库函数:由库函数:由C语言系统提供定义语言系统提供定义n如如scanf()、()、printf()等函数()等函数n自定义函数:需要用户自己定义自定义函数:需要用户自己定义n如计算圆柱体体积函数如计算圆柱体体积函数cylinder()()nmain()也是一个函数,也是一个函数,C程序由一个程序由一个main()或多个或多个函数构成。函数构成。n程序中一旦调用了某个函数,该函数就会完成特定程序中一旦调用了某个函数,该函数就会完成特定的计算,然后返回到调用它的地方。的计算,然后返回到调用它的地方。n函数经过运算,得到一个明确的运算结果,并需要函数经过运算,得到一个明确的运算结果,
7、并需要回送该结果。例如,函数回送该结果。例如,函数cylinder()返回圆柱的体积。返回圆柱的体积。5.1.2 函数定义函数定义函数类型函数类型 函数名(形参表)函数名(形参表)/* 函数首部函数首部 */ /* 函数体函数体 */ 函数实现过程函数实现过程 return 表达式;表达式;把函数运算的结果回送给主函数把函数运算的结果回送给主函数只能返回一个值只能返回一个值函数返回值的类型函数返回值的类型没有分号没有分号double cylinder (double r, double h) double result; result = 3.1415926 * r * r * h; retu
8、rn result;double cylinder (double r, double h) /* 函数首部函数首部 */* 函数体,写在一对大括号内函数体,写在一对大括号内 */ double result;result =3.1415926 * r * r * h; /* 计算圆柱体积计算圆柱体积 */return result; /* 返回运算结果返回运算结果*/分析函数的定义分析函数的定义函数类型函数类型函数名函数名形参表形参表与函数类型一致与函数类型一致形参形参类型类型1 参数参数1 ,类型,类型2 参数参数2 ,类型,类型n 参数参数n参数之间用逗号分隔,每个参数前面的类型都必须分
9、别写明参数之间用逗号分隔,每个参数前面的类型都必须分别写明函数类型函数类型 函数名(形参表)函数名(形参表) 函数实现过程函数实现过程 return 表达式;表达式;不能写成不能写成 double r, hdouble cylinder (double r, double h) double result; result =3.1415926 * r * r * h; return result;5.1.3 函数的调用函数的调用n定义一个函数后,就可以通过程序来调用这定义一个函数后,就可以通过程序来调用这个函数。个函数。n调用标准库函数时,在程序的最前面用调用标准库函数时,在程序的最前面用#i
10、nclude命令包含相应的头文件。命令包含相应的头文件。n调用自定义函数时,程序中必须有与调用函调用自定义函数时,程序中必须有与调用函数相对应的函数定义。数相对应的函数定义。1函数调用的形式函数调用的形式n函数调用的一般形式为:函数调用的一般形式为:n函数名函数名(实际参数表实际参数表)n对于实现计算功能的函数,函数调用通常出对于实现计算功能的函数,函数调用通常出现在两种情况:现在两种情况:n赋值语句赋值语句nvolume = cylinder(radius, height );n输出函数的实参输出函数的实参nprintf(“%f”, cylinder(radius, height ) );2
11、. 函数调用的过程函数调用的过程n计算机在执行程序时,从主函数计算机在执行程序时,从主函数main开始开始执行,如果遇到某个函数调用,主函数被执行,如果遇到某个函数调用,主函数被暂停执行,转而执行相应的函数,该函数暂停执行,转而执行相应的函数,该函数执行完后,将返回主函数,然后再从原先执行完后,将返回主函数,然后再从原先暂停的位置继续执行。暂停的位置继续执行。n函数遇函数遇return返回主函数返回主函数分析函数调用的过程分析函数调用的过程#include double cylinder (double r, double h);int main( void ) double height,
12、radius, volume;printf (Enter radius and height: );scanf (%lf%lf, &radius, &height);volume = cylinder (radius, height );printf (Volume = %.3fn, volume);return 0;double cylinder (double r, double h) double result;result =3.1415926 * r * r * h; return result; 调用函数调用函数实参实参形参形参执行函数中的语句执行函数中的语句返回调用它的地方返回调
13、用它的地方3参数传递参数传递n函数定义时的参数被称为形式参数(简称形参)函数定义时的参数被称为形式参数(简称形参)ndouble cylinder (double r, double h);n函数调用时的参数被称为实际参数(简称实参)函数调用时的参数被称为实际参数(简称实参)nvolume = cylinder (radius, height);n参数传递:实参参数传递:实参形参形参n在参数传递过程中,实参把值复制给形参。在参数传递过程中,实参把值复制给形参。n形参和实参一一对应:数量一致,类型一致,顺序形参和实参一一对应:数量一致,类型一致,顺序一致一致n形参:变量,用于接受实参传递过来的值
14、形参:变量,用于接受实参传递过来的值n实参:常量、变量或表达式实参:常量、变量或表达式单向传递单向传递4函数结果返回函数结果返回n完成确定的运算,将运算结果返回给主调函完成确定的运算,将运算结果返回给主调函数。数。n函数结果返回的形式:函数结果返回的形式:nreturn 表达式;表达式;nreturn (表达式表达式);【例【例5-2】定义判断奇偶数的函数】定义判断奇偶数的函数even (n)定义一个判断奇偶数的函数定义一个判断奇偶数的函数even (n),当,当n为偶数时返回为偶数时返回1,否,否则返回则返回0。/* 判断奇偶数的函数判断奇偶数的函数 */int even (int n)/*
15、 函数首部函数首部 */if(n%2 = 0) /* 判别奇偶数判别奇偶数 */return 1;/* 偶数返回偶数返回1 */elsereturn 0;/* 奇数返回奇数返回0 */如何调用该函数?如何调用该函数?#include int main( void ) int x,sum=0 ; 。 if (even(x)=1) sum=sum+x ; printf(“%d”, sum); return 0;5函数原型声明函数原型声明函数类型函数类型 函数名函数名( (参数表参数表) );double cylinder (double r, double h);double cylinder (
16、double r, double h);void pyramid (int n);void pyramid (int n);函数必须先定义后调用,将主调函数放在被函数必须先定义后调用,将主调函数放在被调函数的后面,就像变量先定义后使用一调函数的后面,就像变量先定义后使用一样。样。如果自定义函数在主调函数的后面,就需要如果自定义函数在主调函数的后面,就需要在函数调用前,加上函数原型声明。在函数调用前,加上函数原型声明。函数声明:说明函数的类型和参数的情况,函数声明:说明函数的类型和参数的情况,以保证程序编译时能判断对该函数的调用以保证程序编译时能判断对该函数的调用是否正确。是否正确。只写函数定义
17、中的第只写函数定义中的第1 1行(函数首部),并以分号结束。行(函数首部),并以分号结束。5.1.3 函数调用函数调用小结: 在执行函数调用时,实参把值计算出来,拷贝 给相应位置的形参;函数执行完后,通过 return( ),可返回一个结果值。 实参与形参 有多个实参时 形参的改变个数相同、类型一致 后面的先计算 不影响实参 变量的值 只能返回一个结果, 类型与函数定义时一致 要调用函数,要调用函数,必须先要声明!必须先要声明!5.1.4 函数程序设计函数程序设计例例5-3 输入精度输入精度e,使用格里高利公式求,使用格里高利公式求的的近似值,精确到最后一项的绝对值小于近似值,精确到最后一项的
18、绝对值小于e。要求定义和调用函数要求定义和调用函数 funpi(e) 求求的近似的近似值。值。71513114什么做参数?例例5-3 源程序源程序/* 用格里高利公式计算用格里高利公式计算的近的近似值,精度为似值,精度为e */#include #include double funpi (double e);int main (void) double e, pi; printf (Enter e:); scanf (%lf, &e); pi = funpi (e); printf (pi = %fn, pi);return 0;double funpi (double e) int den
19、ominator, flag; double item, sum; flag = 1; denominator = 1; item = 1.0; sum = 0; while (fabs (item) = e) item = flag * 1.0 / denominator; sum = sum + item; flag = -flag; denominator = denominator + 2; return sum * 4;Enter e: 0.0001pi = 3.1418例例5-4 判断素数的函数判断素数的函数例5-4 求100以内的全部素数,每行输出10个。素数就是只能被1和自身整
20、除的正整数,1不是素数,2是素数。 要求定义和调用函数prime (m)判断m是否为素数,当m为素数时返回1,否则返回0。算法描述:对2100之间的每个数进行判断,若是素数,则输出该数。for(m = 2; m = 100; m+) if (m是素数) printf(%d , m); prime(m) != 0例例5-4 源程序源程序#include #include int prime (int m);int main(void) int count, m; count = 0; for(m = 2; m = 100; m+) if ( prime(m) != 0 ) printf(%6d,
21、 m ); count+; if (count %10 = 0) printf (n); printf (n);int prime (int m) int i, n; if ( m = 1 ) return 0; n = sqrt (m); for( i = 2; i = n; i+) if (m % i = 0) return 0; return 1; 练习:练习:n5-25.2 数字金字塔n5.2.1 程序解析程序解析 n5.2.2 不返回结果的函数不返回结果的函数 n5.2.3 结构化程序设计思想结构化程序设计思想 例例5-5 输出输出5之内的数字金字塔。之内的数字金字塔。/* 输出数字
22、金字塔输出数字金字塔 */#include void pyramid (int n);/* 函数声明函数声明 */int main (void) pyramid(5);/* 调用函数,输出数字金字塔调用函数,输出数字金字塔 */return 0;void pyramid (int n) /* 函数定义函数定义 */int i, j;for (i = 1; i = n; i+)/* 需要输出的行数需要输出的行数 */ for (j = 1; j = n-i; j+) /* 输出每行左边的空格输出每行左边的空格 */printf( ); for (j = 1; j = i; j+) /* 输出每行
23、的数字输出每行的数字 */ printf( %d , i); /* 每个数字的前后各有一个空格每个数字的前后各有一个空格 */ putchar (n); 12 2 3 3 3 4 4 4 45 5 5 5 5 for (i = 1; i = n; i+) 一行的处理 一行中的空格处理; 一行中的数字显示 for (i = 1; i = n; i+) for (j = 1; j = n-i; j+) printf(“ ”); 一行中的数字显示5.2.2 不返回运算结果的函数定义不返回运算结果的函数定义void 函数名(参数表)函数名(参数表) /* 函数首部函数首部 */ /* 函数体函数体 *
24、/ 函数实现过程函数实现过程 return; /* 可以省略可以省略return */这类函数通常用于屏幕输出等这类函数通常用于屏幕输出等表示不返回结果表示不返回结果不能省略不能省略, 否则否则函数类型被默认定义为函数类型被默认定义为int5.2.2 不返回运算结果的函数定义不返回运算结果的函数定义n由于函数没有返回结果,函数调用不可能出现在表达式由于函数没有返回结果,函数调用不可能出现在表达式中,通常以独立的调用语句方式,如中,通常以独立的调用语句方式,如pyramid(5);n不返回结果的函数,在定义、调用、参数传递、函数声不返回结果的函数,在定义、调用、参数传递、函数声明上,思路完全与以
25、前相同,只是函数类型变为明上,思路完全与以前相同,只是函数类型变为void。n它适用把一些确定的、相对独立的程序功能包装成函数。它适用把一些确定的、相对独立的程序功能包装成函数。n主函数通过调用不同的函数,体现算法步骤主函数通过调用不同的函数,体现算法步骤n各步骤的实现由相应函数完成各步骤的实现由相应函数完成n简化主函数结构,以体现结构化程序设计思想。简化主函数结构,以体现结构化程序设计思想。5.2.3 结构化程序设计思想结构化程序设计思想n结构化程序设计结构化程序设计(Structured Programming)n程序设计技术程序设计技术nC语言是结构化程序设计语言语言是结构化程序设计语言
26、n强调程序设计的风格和程序结构的规范化,强调程序设计的风格和程序结构的规范化,提倡清晰的结构提倡清晰的结构n基本思路是将一个复杂问题的求解过程划分基本思路是将一个复杂问题的求解过程划分为若干阶段,每个阶段要处理的问题都容易为若干阶段,每个阶段要处理的问题都容易被理解和处理。被理解和处理。n按自顶向下的方法对问题进行分析、模块化按自顶向下的方法对问题进行分析、模块化设计和结构化编码等设计和结构化编码等3个步骤。个步骤。1. 自顶向下的分析方法自顶向下的分析方法n把大的复杂的问题分解成小问题后再解决把大的复杂的问题分解成小问题后再解决n面对一个复杂的问题,首先进行上层(整体)面对一个复杂的问题,首
27、先进行上层(整体)的分析,按组织或功能将问题分解成子问题的分析,按组织或功能将问题分解成子问题n如果子问题仍然十分复杂,再做进一步分解,如果子问题仍然十分复杂,再做进一步分解,直到处理对象相对简单,容易处理为止。直到处理对象相对简单,容易处理为止。n当所有的子问题都得到了解决,整个问题也当所有的子问题都得到了解决,整个问题也就解决了。就解决了。n每一次分解都是对上一层的问题进行细化和每一次分解都是对上一层的问题进行细化和逐步求精,最终形成一种类似树形的层次结逐步求精,最终形成一种类似树形的层次结构,来描述分析的结果。构,来描述分析的结果。学生成绩统计程序学生成绩统计程序成绩输入成绩输入数据计算
28、数据计算数据查找数据查找输出成绩输出成绩计算学生平均分计算学生平均分计算课程平均分计算课程平均分学生成绩统计程序的层次结构图学生成绩统计程序的层次结构图 模块用函数实现模块用函数实现2. 模块化设计模块化设计n将模块组织成良好的层次系统将模块组织成良好的层次系统n顶层模块调用其下层模块以实现程序的完整功能顶层模块调用其下层模块以实现程序的完整功能n每个下层模块再调用更下层的模块,从而完成程每个下层模块再调用更下层的模块,从而完成程序的一个子功能,序的一个子功能,n最下层的模块完成最具体的功能。最下层的模块完成最具体的功能。n遵循模块独立性的原则,即模块之间的联系应尽遵循模块独立性的原则,即模块
29、之间的联系应尽量简单。量简单。n模块用函数实现。模块用函数实现。n一个模块只完成一个指定的功能。一个模块只完成一个指定的功能。n模块之间只通过带参数的函数进行调用。模块之间只通过带参数的函数进行调用。3. 结构化编码主要原则结构化编码主要原则 n经模块化设计后,每一个模块都可以独立编码。编经模块化设计后,每一个模块都可以独立编码。编程时应选用顺序、选择和循环三种控制结构程时应选用顺序、选择和循环三种控制结构n对变量、函数、常量等命名时,要见名知意,有助对变量、函数、常量等命名时,要见名知意,有助于对变量含义或函数功能的理解。于对变量含义或函数功能的理解。n在程序中增加必要的注释,增加程序的可读
30、性。在程序中增加必要的注释,增加程序的可读性。n要有良好的程序视觉组织,利用缩进格式要有良好的程序视觉组织,利用缩进格式n程序要清晰易懂,语句构造要简单直接程序要清晰易懂,语句构造要简单直接n程序有良好的交互性,输入有提示,输出有说明程序有良好的交互性,输入有提示,输出有说明 练习:练习:n5-35.3 复数运算复数运算 5.3.1 程序解析程序解析 5.3.2 局部变量和全局变量局部变量和全局变量5.3.3 变量生命周期和静态局部变量变量生命周期和静态局部变量例例5-6 分别输入分别输入2个复数的实部与虚部,用函个复数的实部与虚部,用函数实现计算数实现计算2个复数之和与之积。个复数之和与之积
31、。 n分析分析n若若2个复数分别为:个复数分别为:n c1=x1+y1i , c2=x2+y2i,n则:则:nc1+c2 = (x1+x2) + (y1+y2)inc1*c2 = (x1*x2-y1*y2) + (x1*y2+x2*y1)i #include float result_real, result_imag; /* 全局变量,用于存放函数结果全局变量,用于存放函数结果 */* 函数声明函数声明 */void complex_prod(float real1, float imag1, float real2, float imag2);void complex_add(float
32、real1, float imag1, float real2, float imag2);int main(void) float imag1, imag2, real1, real2; /* 两个复数的实、虚部变量两个复数的实、虚部变量 */printf(Enter 1st complex number(real and imaginary): );scanf(%f%f, &real1, &imag1); /* 输入第一个复数输入第一个复数 */printf(Enter 2nd complex number(real and imaginary): );scanf(%f%f, &real2
33、, &imag2); /* 输入第两个复数输入第两个复数 */complex_add(real1, imag1, real2, imag2); /* 求复数之和求复数之和 */printf(addition of complex is %f+%fin, result_real, result_imag);complex_prod(real1, imag1, real2, imag2); /* 求复数之积求复数之积 */printf(product of complex is %f+%fin, result_real, result_imag);return 0;运行结果运行结果Enter 1s
34、t complex number(real and imaginary):1 1Enter 2nd complex number(real and imaginary):-2 3addition of complex is -1.000000+4.000000iproduct of complex is -5.000000+1.000000ivoid complex_add(float real1, float imag1, float real2, float imag2)result_real = real1 + real2;result_imag = imag1 + imag2;void
35、 complex_prod(float real1, float imag1, float real2, float imag2)result_real = real1*real2 - imag1*imag2;result_imag = real1*imag2 + real2*imag1;5.3.2 局部变量和全局变量局部变量和全局变量n局部变量局部变量n在函数内定义的变量(包括形参)在函数内定义的变量(包括形参)n作用范围:本函数内部作用范围:本函数内部n定义在复合语句内的变量定义在复合语句内的变量n作用范围:复合语句内部作用范围:复合语句内部n全局变量全局变量n在函数以外定义的变量,不从属
36、于任一函数。在函数以外定义的变量,不从属于任一函数。n作用范围:从定义处到源文件结束(包括各作用范围:从定义处到源文件结束(包括各函数)函数)例例5-6 在复合语句中定义局部变量。在复合语句中定义局部变量。#include int main (void) int a; a = 1; /* 复合语句开始复合语句开始 */ int b = 2; b = a + b; a = a + b; /* 复合语句结束复合语句结束 */ printf (%d , a ); return 0;b:b:小范围内的临时变量小范围内的临时变量 输出:输出:4改成b会如何?例例5-7 全局变量定义全局变量定义#incl
37、ude stdio.hint x; /* 定义全局变量定义全局变量x */int f( ) int x = 4; /* x为局部变量为局部变量 */ return x;int main(void) int a = 1; x = a; /* 对全局变量对全局变量 x 赋值赋值 */ a = f( ); /* a的值为的值为4 */ int b = 2; b = a + b; /* b的值为的值为6 */ x = x + b; /* 全局变量运算全局变量运算 */ printf(%d %d , a, x); return 0;若局部变量与全局变量若局部变量与全局变量同名,局部变量优先同名,局部变量
38、优先输出:输出:4, 7变量作用范围示例变量作用范围示例int x=1;void main( ) int a=2; . int b=3; . f( ); .int t=4 ;void f( ) int x=5, b=6; .int a=7; x=? a=? b=?b=? x=5 b=6 t=4 a没定义 x=? b=? t=? a=?n【例【例5-8】n用函数实现财务现金记账。先输入操作类用函数实现财务现金记账。先输入操作类型型(1收入,收入,2支出,支出,0结束结束),再输入操作金,再输入操作金额,计算现金剩余额,经多次操作直到输额,计算现金剩余额,经多次操作直到输入操作为入操作为0结束。要
39、求定义并调用函数,其结束。要求定义并调用函数,其中现金收入与现金支出分别用不同函数实中现金收入与现金支出分别用不同函数实现。现。n分析:分析:n设变量设变量cash保存现金余额值,由于它被主保存现金余额值,由于它被主函数、现金收入与现金支出函数共用,任函数、现金收入与现金支出函数共用,任意使用场合其意义与数值都是明确和唯一意使用场合其意义与数值都是明确和唯一的,因此令其为全局变量。的,因此令其为全局变量。 #include float cash;/* 定义全局变量,保存现金余额定义全局变量,保存现金余额 */void e(float number), expend(float number);
40、/* 函数声明函数声明 */int main(void) int choice;float value;cash = 0;/* 初始金额初始金额=0 */printf(Enter operate choice(0-end, 1- e, 2-expend):);scanf(%d, &choice);/* 输入操作类型输入操作类型 */while (choice != 0)/* 若输入类型为若输入类型为0,循环结束,循环结束 */ if (choice = 1 | choice = 2) printf(Enter cash value:); /* 输入操作现金额输入操作现金额 */scanf(%f
41、, &value); if (choice = 1) e(value); /* 函数调用,计算现金收入函数调用,计算现金收入 */else expend(value); /* 函数调用,计算现金支出函数调用,计算现金支出 */printf(current cash:%.2fn, cash); printf(Enter operate choice(0-end, 1- e, 2-expend):); scanf(%d, &choice);/* 继续输入操作类型继续输入操作类型 */return 0;/* 定义计算现金收入函数定义计算现金收入函数 */void e(float number) ca
42、sh = cash + number;/* 改变全局变量改变全局变量cash */* 定义计算现金支出函数定义计算现金支出函数 */void expend(float number) cash = cash - number;/* 改变全局变量改变全局变量cash */Enter operate choice(0-end, 1- e, 2-expend):1Enter cash value:1000current cash:1000.000000Enter operate choice(0-end, 1- e, 2-expend):2Enter cash value:456current ca
43、sh:544.000000Enter operate choice(0-end, 1- e, 2-expend):05.3.2 局部变量和全局变量局部变量和全局变量n讨论讨论n全局变量比局部变量自由度大,更方便全局变量比局部变量自由度大,更方便 ?n引起注意引起注意n对于规模较大的程序,过多使用全局变量会对于规模较大的程序,过多使用全局变量会带来副作用,导致各函数间出现相互干扰。带来副作用,导致各函数间出现相互干扰。如果整个程序是由多人合作开发,各人都按如果整个程序是由多人合作开发,各人都按自己的想法使用全局变量,相互的干扰可能自己的想法使用全局变量,相互的干扰可能会更严重。会更严重。 n因此
44、在变量使用中,应尽量使用局部变量,因此在变量使用中,应尽量使用局部变量,从某个角度看使用似乎受到了限制,但从另从某个角度看使用似乎受到了限制,但从另一个角度看,它避免了不同函数间的相互干一个角度看,它避免了不同函数间的相互干扰,提高了程序质量。扰,提高了程序质量。 n变量生命周期变量生命周期n变量从定义开始分配存储单元,到运行结束存储单元变量从定义开始分配存储单元,到运行结束存储单元被回收的整个过程。被回收的整个过程。n自动变量(自动变量(auto): 普通的局部变量普通的局部变量nint x, y; auto int x, y;nchar c1; auto char c1;n函数调用时,定义变量,分配存储单元。函数调用时,定义变量,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 交通运输安全工程
- 医疗护理操作中的礼仪与人文关怀
- CRRT技术在重症模拟教学中的实践要点
- 医疗器械研发与创新趋势
- 可直接落地的3C 锂电 光伏 汽车场景的选型清单
- 《眼神经科学》课件
- 《汽包水位检测》课件
- 《汽车文化》说课
- 《讲师姓名林麟》课件
- 《投资学第6章》课件
- 完整的包装设计汇报
- 中医考核人文试题及答案
- 2025年河北西学中题库及答案
- 班主任职业能力大赛课件
- 肿瘤靶向药物治疗及护理讲课件
- 传统蒙学在现代儿童德育中的创造性运用研究
- 国家电网公司招聘高校毕业生应聘登记表
- 青少年心理发展与教育(硕士)
- 林下土鸡养殖技术课件
- 鲁科版高中化学必修第一册第1章第2单元化学中常用的物理量-物质的量课件
- 电动卷帘门维修合同范本
评论
0/150
提交评论