C语言教学版完整版教案.ppt

  1. 1、本文档共173页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
通过以上测试,我们真正知道——形参是形参,实参是实参。在调用函数时,只是将实参的值赋给了形参,进而被调用的函数操作形参,并未改变实参的值。 如果形参和实参的名字相同,在函数内部,实参将被屏蔽 在下一章,我们将介绍指针,用指针改变实参的值 第十二章 变量,你活了多久? 全局变量与局部变量 局部变量 在函数或复合语句中定义的变量,称之为局部变量(内部变量) 全局变量 在函数外定义的变量,称之为全局变量(外部变量) 类型 作用域 生存域 存储位置 auto变量 一对{}内 当前函数 变量默认存储类型,存储在栈区 static全局变量 当前文件 整个程序运行周期 初始化在data段,未初始在bss static局部变量 一对{}内 整个程序运行周期 初始化在data段,未初始在bss extern变量 整个程序 整个程序运行周期 初始化在data段,未初始在bss register变量 一对{}内 当前函数 运行时存储在CPU寄存器 字符串常量 当前文件 整个程序运行期 数据段 extern函数 整个程序 整个程序运行期 代码段 static函数 当前文件 整个程序运行期 代码段 #includestdio.h f(int ); int main(){ int a = 2,i,k; for(i=0;i2;i++) k=f(a++); printf(%d\n,k); } f(int a) { int b = 0; static int c = 3; a = c++,b++; return a; } 现在我们添加一条语句到f()函数中验证每次调用f()函数,c和b的值。想想应该添加什么语句,添加到哪? #includestdio.h f(int ); int main(){ int a = 2,i,k; for(i=0;i2;i++) k=f(a++); printf(%d\n,k); } f(int a) { int b = 0; static int c = 3; printf(“此次运行,c为%d,b为%d”,c,b); a = c++,b++; return a; } 第八章 #includestdio.h int main(){ int a,b; float x; printf(a的内存地址是:a→%p\n,a); printf(b的内存地址是:b→%p\n,b); printf(x的内存地址是:x→%p\n,x); return 0; } 0012FF49 0012FF48 0012FF47 0012FF46 0012FF45 0012FF44 0012FF43 0012FF42 0012FF41 0012FF40 0012FF3F 0012FF3E 0012FF3D 0012FF3C x b a 现在我们要定义一种特殊的变量,这种变量用来存储其他变量地址 p 0015AA12 指针变量 定义形式: 类型名 *指针变量名1,*指针变量名2,……; 【例1】 int *p; p = a; int *p = a; 【例2】 int k=1; int *p,*q; p = k; q = p; 0012FF65 1 p q 0012FF65 0012FF65 0015DD11 0015DD16 k 那么,我们创造这种指针变量的意义何在? 通过指针来引用一个存储单元 #includestdio.h int main(){ int *p,i=10,j; p = i; j = *p; //等价j = i; printf(变量i=%d\n,i); printf(变量j=%d\n,j); return 0; } 我们可以用“间接访问运算符” 来访问或者引用地址里面的数据 ★函数之间的地制值传递 1.形参为指针变量时实参和形参之间的数据传递 #includestdio.h int myadd(int *a,int *b); int main(){ int x,y,z; printf(Enter x,y:); scanf(%d%d,x,y); z = myadd(x,y); printf(%d+%d = %d\n,x,y,z); return 0; } int myadd(int *a,int *b) { int sum; sum = *a + *b; return sum; } 临时指针变量a 临时指针变量b x y 0012FF20 0012FF40 #includestdio.h void trya(int x,int y,int z) { printf((2)x =

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档