- 1、本文档共299页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编写一个函数change,要求它能将一个整数字符串转换成一个整数。如将“2345”转换为2345。 编写函数计算aaa…aaa(共n个a)的值。例如,a=3,n=4,则为3333。 编写一个能测出一个字符串长度的函数,函数返回值就是字符串的长度。 编程实现 ⑴函数指针变量定义 6.4函数指针 类型标识符(*标识符)(参数类型表); int (*fun)(); int max(), min(); … fun=max; … fun=min; 例中定义了一个函数指针变量fun,而max、min则为两个函数,fun是函数指针变量,可将max和min分别赋给fun;而max、min是两个函数指针常量,只能引用不能赋值。 注意 定义函数指针变量时不能写做“int *fun();” ⑵函数指针的使用 例:输入一个两数的四则运算式,通过函数指针求值 。 float add(float a,float b) {return a+b;} float minus(float a,float b) {return a-b;} float mult(float a,float b) {return a*b;} float div(float a,float b) {return a/b;} main() { float m, n, r; char op; float (*p)(float,float); scanf(%f%c%f, m, op, n); switch(op) {case +:p=add; break; case -:p=minus;break; case *:p=mult; break; case /:p=div; break; default:printf(Error!); return; } r=(*p)(m,n); printf(%f, r); } 7.1 变量的存储类别 变量的完整定义形式: 存储类别 变量类型 变量名列表; 为了解决函数之间变量的重名及函数之间共享变量的问题,C语言规定,在定义变量时,除了要说明其类型之外,还要说明其存储类别。 在C语言中,分为四种存储类别:即自动、外部、静态和寄存器。 ⑴自动变量(auto) 自动变量是最常见的一类变量,自动变量的说明必须在一个函数体的内部进行,函数的形参也是一种自动变量。 在调用该函数时,系统会给它们分配存储空间,在函数调用结束时就自动释放这些存储空间。 系统的默认存储类别为auto型。 ? “auto int a;”等价于“int a;”。 ? “auto float b;”等价于“float b;”。 ? “auto char str[100];”等价于“char str[100];”。 例: 分析程序输出结果。 main() { auto int y=0123; /* 函数main中的自动变量y */ void f1(), f2(int); /*函数声明*/ f1(); f2(y); /* 分别调用函数f1和f2 */ printf (y=%o\n, y); } void f1() { int y=321; /*函数f1中的自动变量y*/ printf (y=%d\t,y); } void f2(int y) /* 函数f2中的形参y也是自动变量 */ { printf (y=%d\t, ++y); /* y加1 */ } ⑵外部变量(extern) C语言的外部变量就是定义在所有函数之外的全局变量。它可以被所有的函数访问,在所有函数体的内部都是有效的,所以函数之间可以通过外部变量直接传递数据。 程序中的外部变量在编译阶段被分配存储空间且在程序执行过程中这部分存储空间不被释放。所以,外部变量的存储空间是固定的,生存期是全程的。 未被赋初值的外部整型变量,系统默认初值为0;未赋初值的外部字符型变量,系统默认初值为空字符。 例:用extern声明外部变量,扩展外部变量的作用域。 int max(int x,int y) {int z; z=xy?x:y; return(z); } main() { extern a,b; /*声明外部变量a,b在main中可见*/ printf(%d\n,max(a,b)); } int a=13,b=-8; /*定义外部变量a,b*/ ⑶静态变量 静态变量是指存放在内存中的静态存储区的变量。编译系统为静态变量分配固
文档评论(0)