- 1、本文档共173页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 =
您可能关注的文档
- 2015~2016学年度苏锡常镇四市高三教学情况调研(一)教案.ppt
- 波峰焊维护保养及维修题稿.pptx
- 太阳家族精选.ppt
- 高一公开课人教版必修一《第二章化学物质及其变化》第三讲氧化还原反应公开课第一课时公开课精选.ppt
- 2015《世界分区-非洲和埃及》教案.ppt
- 高一历史复杂多样的当代世界1精选.ppt
- 2017高考地理一轮复习10.5矿产资源合理开发和区域可持续发展-以德国鲁尔区为例教案.ppt
- 2015-1-11安规大讲堂(继电保护专业)教案.ppt
- 高一历史世界之交的世界格局精选.ppt
- 你对难辨梭菌感染知多少-程瑞年精选.ppt
- 场地脚手架工程施工方案(3篇).docx
- 2024年浙江省丽水市松阳县玉岩镇招聘社区工作者真题及参考答案详解一套.docx
- 2024年河南省郑州市惠济区古荥镇招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市淳安县文昌镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省台州市三门县小雄镇招聘社区工作者真题带答案详解.docx
- 2024年浙江省宁波市余姚市河姆渡镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省丽水市景宁畲族自治县雁溪乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市临安市板桥乡招聘社区工作者真题及答案详解一套.docx
- 2024年湖北省宜昌市点军区土城乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省台州市路桥区桐屿街道招聘社区工作者真题附答案详解.docx
文档评论(0)