网站大量收购独家精品文档,联系QQ:2885784924
  1. 1、本文档共33页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
的参数

第三讲 函数的参数与返回值 形式参数与实在参数 参数类型 参数传递方式 main()的参数 形式参数与实在参数 … print(‘a’); … void print(char c) { cout c endl; } 参数类型 简单数据类型 指针 引用 数组 结构 对象 参数传递中栈的变化(例) void funcAA(int paraAA) { int localAA; } int funcA(int para1, int para2) { int local1=1; funcAA(); return para1+para2+local1; } void main() { int a=2,b=3; funcA(a,b); } 函数的参数传递 参数传递方式 值传递 简单数据类型 结构 对象 地址传递 指针 数组 引用传递 引用 值传递 按值传递 简单数据类型、结构、对象都是按值传递 float f; SomeClass aObj; SomeStruct aStruct; func(f); func(aObj); func(sStruct); 对象和结构参数 类的对象作为参数传递时 需要调用类的拷贝构造函数 函数执行结束时,需要释放该临时对象 结构和对象类似 值传递的特点 优点: 对形式参数的操作不会影响实在参数 缺点: 占用栈空间 地址传递(指针) 对象指针参数 地址传递(数组) 地址传递(数组) 数组参数传递时,一般需要传递数组的长 度信息 void func(int array[], int size); 字符串作为参数时,不需要传递长度信息 void func(char str[]) void func(char * str) 多维数组作为参数时,除第一维以外的所 有维数都必须写出 地址传递的特点 好处 节省栈空间 可以通过传递的地址间接修改实在参数 坏处 可能会对实在参数产生副作用 通过指针传递信息和访问信息不太直接 引用传递(引用参数) 引用参数的特点 好处 简单、自然(调用时不需要加) 节省栈空间 通过引用参数返回函数的操作结果 坏处 可能对实在参数产生副作用(用const限制) 参数传递类型选择策略 通过函数返回某些信息 引用 参数类型为结构或对象类型 引用 传递给函数的简单数据类型 值 数组 地址 不希望被函数修改的参数 const main()的参数 void main(int argc, char *argv[]); 第一个参数为程序运行时参数的个数 第二个参数为各个参数字符串的内容 mycopy file1 fil2 argc = 3 argv[0] = mycopy argv[1] = file1 argv[2] = file2 main()的参数 void main(int argc, char *argv[]) { for(int ix=1; ix argc; ix++) { char *pchar = argv[ix]; progname -d filename switch(pchar[0]) progname +i parafile { case ‘-’: ... case ‘+’: ... default: ... } } } 返回值类型 简单数据类型 引用 指针 结构 对象 void 参数返回方式 值返回 一般数据类型 指针返回 Type func(......) 引用返回 Type func(......); 返回值 int func(...) char * func(...) ClassA func(...) ClassA * func(...) ... 注意:要保证返回的指针指向合法空间 返回引用 ClassA func(...) int func(...) 注意:要保证返回的引用不是临时变量 Queue CreateQueue() { Queue newQueue; for(int i=0; i 10; i

文档评论(0)

daoqqzhuan2 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档