函数,指针与引用.pptx_第1页
函数,指针与引用.pptx_第2页
函数,指针与引用.pptx_第3页
函数,指针与引用.pptx_第4页
函数,指针与引用.pptx_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Agenda: 1.Function 2.Pointer 3.Struct 4.Reference,Function,主要内容: 1.函数定义 2.函数声明 3.函数参数 4.递归函数,函数定义:,类型 函数名(形式参数) / 函数头 head 代码块; /函数体 body Int main() 代码块; ,例子(一个简单的加法函数) int add(int a, int b) return a+b; .,函数的声明,注意函数声明与函数定义的区别: 函数声明: 函数定义:,函数声明: 函数声明由函数返回类型、函数名和形参列表组成。形参列表必须包括形参类型,但是不必对形参命名。这三个元素被称为函

2、数原型,函数原型描述了函数的接口。 为什么需要声明? 当编译器遇到一个函数调用时,他怎么知道该函数期望接受的是什么类型和多少数量的参数呢? 如何知道其返回值类型呢?通过函数的声明,编译器便可获取这些信息。 Attention: 在程序中,如果main()函数在前,必须在main()前写函数声明;如果函数在main()函数之前,那可以不在main()前写函数声明。,函数参数,C函数的所有参数均以“传值调用”的方式进行传递,即函数将获得参数值的一份copy,这样在函数内对传入的值进行修改也不必担心会修改调用实际传给它的参数。 对于指针的传递(待续),函数递归,1.定义: 递归函数即自调用函数,在函

3、数体内部直接或间接自己调用自己,即函数的嵌套调用时函数本身。 例子如下 int fact(int n) if(n=1) return 1; else return fact(n-1)*n; ,例子2:斐波那契数列,int fibo(int) if(n = 1|n = 2) return 1; else return fibo(n-1) + fibo(n-2);,Pointer,C的数据类型:,Pointer type,1.基本概念 2.指针常量与变量 3.指针的运用 4.指针类型与数组 5.指向结构体变量的指针,内存编号,地址与指针,常见数据类型所占字节数,Char 1 Int 4 Short

4、 int 2 Long int 4 Float 4 Double 8 一般情况下,指针这种数据应该包含两方面的信息: 1. 地址值 2.所指向的数据的类型,取地址运算符与指针常量:,指针变量的运用,定义形式: 基数据类型* 指针变量名; int a; double b; int* p1; double* p2; 赋值: a = 100; b = 3.14; p1 = /利用 p1 = NULL; / 也可以p1 = 0;,指针与函数的传参,正确的写法,指针与数组,通过指针访问数组元素,注意:访问时要注意是否越界,数组做参数传递,结构体(struct),动态内存分配和释放,malloc: free: free(p);,例子,课后思考,链表的C实现,C+在C上的扩充: 引用,代码示例:,概念 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;(注意是在C+上的 C上会报错) 与指针的区别: 相同点: 都是地址的概念; 指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名。 不同点: 指针是一个实体,而引用仅是个别名; 引用只能在定义时被初始化一次,之后不可变;指针可变;引用“从一而终”,指针可以“见异思迁”; 引用没有const,指针有const,const的指针不可变; 引用不能为空,指针

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论