指针、函数及自定义数据类型

指针、函数及自定义数据类型

ID:37274682

大小:356.81 KB

页数:37页

时间:2019-05-12

指针、函数及自定义数据类型_第1页
指针、函数及自定义数据类型_第2页
指针、函数及自定义数据类型_第3页
指针、函数及自定义数据类型_第4页
指针、函数及自定义数据类型_第5页
资源描述:

《指针、函数及自定义数据类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章指针、函数、及其他数据类型指针函数结构体共用体枚举3.1指针指针是一种非常重要的数据类型,利用指针变量可以表示各种数据结构,方便地引用数组和字符串,像汇编语言一样处理内存地址。指针极大地丰富了C语言的功能,运用指针编程是C语言最主要的风格之一。3.1.1指针的基本概念指针变量的定义数据类型符*指针变量名;int*p;double*pd;int*p1,*p2;int*p1,p2;3.1.1指针的基本概念&取地址运算符和*取值运算符intn;int*pn;pn=&n;*pn=2;3.1.1指针的基本概念指针的运算指针是一个内

2、存地址值,它是一个无符号的整数,可以进行加法和减法运算,但不允许进行乘法、除法和两个指针值的相加运算。指针类型的变量在内存中都和int类型所占的大小想相同,可以使用sizeof来查看大小inta[5]={1,2,3,4,5};int*p1=&a[1];p1++;3.1.1指针的基本概念void指针类型void*p;上面的定义中,p仍然是一个指针变量,有自己的内存空间,占用4个字节,但是没有指定它指向哪种类型的变量。在这种情况下,不能对指针变量进行运算,否则会导致编译错误。3.1.1指针的基本概念指针的类型转换(TYPE*)p强

3、制类型转换的结果是生成一个新的指针,该指针的类型为TYPE*,所指向的类型为TYPE,其他属性都不变,所指向的地址仍为原来的地址。3.1.1指针的基本概念指向指针的指针数据类型符**指向指针的指针变量名;inta,b;int*p;int**pp;p=&a1&a为变量a的地址,即指针变量p指向整型的变量app=&p;2&p为指针变量p的地址,即指向指针变量的指针变量pp指向指针变量p**pp=6;问上面的语局同什么语句相同?*pp=&b问上面的语句同什么语句相同?3.1.2指针与数组的互操作数组名和指针变量是两个不同的概念,但他

4、们都可以用来对数组或数组元素进行引用。数组名实际上就是数组的首地址inta[10];int*p;p=a;p=&a[0];对数组元素的引用既可以使用下标法,也可以使用指针的表示方法,如:p+n与a+n表示数组元素a[n]的地址,即&a[n]*(p+n)和*(a+n)表示数组的元素a[n]3.1.3指针数组指针变量也可以作为数组元素,进而构成指针数组。char*week[]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};3.2函数函

5、数的定义与声明函数的调用与参数传递变量的作用域变量的存储类型外部函数和内部函数函数的递归函数指针3.2.1函数的定义与声明函数对应于程序的模块,需要先定义后使用。定义也叫函数的声明,函数的声明需要注意的是函数句尾有一个分号,并且形式参数可以只写数据类型返回值类型符函数名(形式参数列表){定义部分;执行语句部分;}return语句的格式为:return表达式;return(表达式);3.2.2函数的调用与参数传递函数调用的一般格式为:函数名(实际参数列表)函数参数传递是调用函数和被调用函数在调用发生时进行通信的方法。基本的参数传

6、递机制有:值传递:被调用函数中的任何操作都不会影响到实参变量的值地址传递:被调用函数队形式参数的任何擦操作做都被处理成间接寻址,通过对地质访问,会影响实际参数变量通过指针的方式实现了地质的传递,但这种地质传递方式实际上也是值传递,只不过传递的是地址值3.2.3变量的作用域局部变量是在函数内部定义的变量或函数的形式参数。intfunc(inta,intb){inti;…}intmain(){inti,j;…}3.2.3变量的作用域全局变量是在函数外部定义的变量intx,y;voidfunc(){…}intmain(){/*int

7、y;*/…}现在全局变量x,y在两个函数中都可以使用,需要注意的是,如果在函数内部定义变量和全局变量名相同,又或者是函数参数中有和全局变量名相同,则会使用局部变量.3.2.3变量的作用域如果需要在未定义前使用全局变量,声明全局变量:extern数据类型符全局变量名;使用全局变量可以减少函数调用过程中实际参数和形式参数之间数据传递带来的时间消耗。但也会带来了一些问题全局变量破坏了函数的封装性全局变量使函数代码的可读性降3.2.4变量的存储类型定义一个变量的完整形式应为:存储类型说明符数据类型符变量名;存储类型说明符有四种:aut

8、o(自动变量)extern(外部变量)static(静态变量)register(寄存器变量)变量的存储类型变量在内存中的存储方式可以分为两种,静态存储和动态存储静态存储:变量在定义的时候就分配存储单元并一直保持到整个程序的结束全局变量即属于静态存储的方式动态存储:在程序执行过

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。