C++大学基础教程

C++大学基础教程

ID:43915259

大小:2.18 MB

页数:109页

时间:2019-10-16

C++大学基础教程_第1页
C++大学基础教程_第2页
C++大学基础教程_第3页
C++大学基础教程_第4页
C++大学基础教程_第5页
资源描述:

《C++大学基础教程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C++大学基础教程第6章指针和引用2021/9/82/98编程风格提示编程序的目的包括:让程序正确运行让别人能够看懂代码要有注释,c++代码行数注释比为7:32021/9/83/98编程风格提示尽量不用全局变量、全局数组全局变量破坏了信息的封装性,与软件开发中的“信息隐藏”规则不符除非,出于性能的考虑,有必要使用全局变量2021/9/84/98编程风格提示C++规定,main函数必须要返回一个int值。因此正确的main函数定义方式是intmain(){return0;}或者intmain(intargc,char*argv[]){re

2、turn0;}教材上的写法有问题2021/9/85/98指针概述指针(Pointer)和引用(Reference)是C++的扩展数据类型。指针和引用使得C++具备汇编语言的某些功能,可以访问存储器指针和引用在概念上和使用上都有相似之处,但是也有重要的差别。2021/9/86/98第六章指针和引用6.1指针的概念6.2指针的运算6.3指针和函数6.4指针和字符串6.5通过指针访问数组6.6指针访问动态内存6.7引用概念2021/9/87/986.1.0变量的地址属性变量名携带着存储的位置信息即变量的地址属性。266‘a’1280xA00x

3、A40xA5charylongxintz低地址高地址z=x的含义根据变量x的地址属性,找到相应内存地址中存放的信息。把这个信息赋给变量z2021/9/88/986.1.0变量的地址属性取地址运算符&(address-of)设x是变量,则&x就是变量x的地址,此时系统使用了变量的地址属性。&号读作“什么的地址”,它表示返回的是变量在内存中的地址而不是变量本身的值为了得到变量x的地址中的内容,系统提供了指针运算符*,例如*(&x)就是变量x的值。对变量的地址属性进行操作可以通过指针来实现,指针就是存放地址的变量,定义指针的格式如下:int*

4、pi;//定义一个int*类型属性的指针pilong*pl;double*pd;//定义long*型的指针pl,double*型指针pd2021/9/89/986.1.1指针和指针变量指针指针是变量或常量的地址。或者说是在内存中的一块区域的地址,这块区域存放某种类型的数据。例:定义了整型变量a,a的地址就是一个指针。也可以不定义任何变量,只是指定内存某个地址开始(如0x00430100)的4个字节存放整型变量,这样的地址也是指针。指针变量存放指针的变量就是指针变量。2021/9/810/98指针变量和它所指的“位置”int*p;inta

5、=5;p=&a;0x25005…………0x10A00x2500pa内存地址内存地址2021/9/811/986.1.1指针和指针变量当声明了一个指针变量后,确定了三件事:变量本身在内存中所分配的地址和字节数,指针变量总是占有4个字节;系统允许的地址范围,以及地址单元内可以存放的内容;指针变量可以进行的运算。对于内存单元的间接访问访问指针变量时,只能看到指针变量的值——即一个地址。然后再通过这个地址找到相应内存存放的信息。2021/9/812/986.1.2指针变量的声明和初始化指针变量声明的格式是:<类型名>*变量名1,*变量名2;例如

6、:int*va1,*va2;char*ch1,*ch2;或者:char*ch1;char*ch2;指针变量在声明后,变量的值(地址)是随机的。这样的指针变量是不能安全的使用的。2021/9/813/986.1.2指针变量的声明和初始化在声明指针变量时的“*”,有两个含义:声明变量va1、va2、ch1、ch2都是指针变量;说明变量va1和va2的类型是(int*)型,即指向整型变量的指针。va1和va2所指定的地址单元中,只能存放整型数据。类似地,ch1和ch2的类型是(char*)型,它们所指定的地址单元中,只能存放字符。指针变量都是

7、有类型的.指针变量的类型就是它所指定的地址单元中存放的数据的类型。定义指针时:int*p1,*p2;int*p1;int*p2;//推荐这种方式2021/9/814/986.1.2指针变量的声明和初始化指针变量的初始化有两种方法:在声明时的初始化和声明后的初始化。声明指针变量后,用赋值的方式对它们进行初始化。例如:inti1=’Y’,i2=’A’;int*pi1,*pi2;pi1=&i1;pi2=&i2;int*pi1;与int*pi1;之间只有形式上的差别int*pi1,pi2;定义了什么?*不是一种独立类型必须附着在其他类型上202

8、1/9/815/986.1.2指针变量的声明和初始化声明指针变量时就进行初始化的格式是:<类型名>*指针变量名=&变量名;其中的变量名应该是已经声明或定义的同类型变量名。例如:charch1=’Y’,ch2

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

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

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