版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式嵌入式Linux下下QT程序设计程序设计2本章主要内容数组指针引用指针与数组指针与引用动态存储分配命名空间3数组的概念数组是具有一定顺序关系的若干相同类型变量的集合体,组成数组的变量称为该数组的元素。数组属于构造类型。4一维数组的声明与引用一维数组的声明类型说明符 数组名 常量表达式 ; 例如:int a10; 表示 a 为整型数组,有10个元素:a0.a9l数组成员数组成员必须先声明,后使用。只能逐个引用数组元素,而不能一次引用整个数组例如:a0=a5+a7-a2*3数组名的构成方法与一般变量名相同。5一维数组的声明与成员引用#include using namespace std;i
2、nt main() int a10, b10; for(int i = 0; i 10; i+) ai = i * 2 - 1; b10 - i - 1 = ai; for(int i = 0; i 10; i+) cout a i = ai ; cout b I = bi endl; return 0;一维数组的存储顺序数组元素在内存中顺次存放,它们的地址是连续的。例如:具有10个元素的数组 a,在内存中的存放次序如下:数组名字是数组首元素的内存地址。数组名是一个常量,不能被赋值。a0 a1 a2 a3 a4 a5 a6 a7 a8a9a7一维数组的初始化可以在定义数组的同时赋给初值:在声明
3、数组时对数组元素赋以初值。例如:static int a10=0,1,2,3,4,5,6,7,8,9;可以只给一部分元素赋初值。例如:static int a10=0,1,2,3,4;在对全部数组元素赋初值时,可以不指定数组长度。例如:static int a=1,2,3,4,58声明 例:int i;int *ptr = &i;指向整型变量的指针概念 指针:指针:内存地址,用于 间接访问内存单元 指针变量:指针变量: 用于存放地址的变量20003ptr*ptri2000内存用户数据区变量 i变量 j变量 ptr362000200020043010引用 例1:i = 3; 例2:*pt
4、r = 3;指针变量的概念指针变量的概念9指针的声明、赋值与使用#include using namespace std;int main() int i;/定义int型数iint *ptr = &i;/取i的地址赋给ptri = 10;/int型数赋初值cout i = i endl;/输出int型数的值cout *ptr = *ptr endl;/输出int型指针所指地址的内容return 0;10指针变量的算术运算指针与整数的加减运算指针p加上或减去n,其意义是指针当前指向位置的前方或后方第n个数据的地址。这种运算的结果值取决于指针指向的数据类型。p1n1等价于*(p1 + n1
5、)指针加一,减一运算指向下一个或前一个数据。例如:y=*px+ 相当于 y=*(px+) (*和+优先级相同,自右向左运算)引用 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。例如对引用进行输出、赋值等操作。6 变量引用存储空间声明引用引用其实是变量的另一个名字。因此,与变量同样的,在使用引用前也需要对其进行声明,引用的声明语句如下:类型标识符 &引用名=目标变量名;例如,下列语句声明了一个对整型变量a的引用ra。int a; int &ra=a;/定义引用ra,它是变量a的引用,即别名声明ra是对整数的引用,初始化为引用a。在这里,要求a已经声明或
6、定义。引用不是值,不占存储空间。声明引用时,目标的存储状态不会改变。13指针与数组声明与赋值例:int a10, *pa; pa=&a0; 或 pa=a;通过指针引用数组元素经过上述声明及赋值后:*pa就是a0,*(pa+1)就是a1,. ,*(pa+i)就是ai.ai, *(pa+i), *(a+i), pai都是等效的。不能写 a+,因为a是数组首地址是常量。 14设有一个int型数组a,有10个元素。用三种方法输出各元素:使用数组名和下标使用数组名和指针运算使用指针变量#include using namespace std;int main() int a10 = 1, 2,
7、3, 4, 5, 6, 7, 8, 9, 0 ;for (int i = 0; i 10; i+)cout ai ;cout endl;return 0;使用数组名和下标15#include using namespace std;int main() int a10 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 ;for (int i = 0; i 10; i+)cout *(a+i) ;cout endl;return 0;使用数组名指针运算16使用指针变量#include using namespace std;int main() int a10 = 1, 2, 3,
8、4, 5, 6, 7, 8, 9, 0 ;for (int *p = a; p (a + 10); p+)cout *p ;cout endl;return 0;17指针与引用的区别 指针其实就是一个变量,和其他类型的变量是一个样子的,其是一个占用四字节的变量(32位机上),它与其他变量的不同之处就在于它的变量值是一个内存地址,指向内存的另外一个地方。而引用则是变量的一个别名。注意:一个指针变量可以指向NULL,表示它不指向任何变量地址,但是引用必须在声明的时候就得和一个已经存在的变量相绑定,而且这种绑定不可改变。指针与引用的联系引用在底层通过指针来实现一个引用变量,通过存储被引用对象的地址,
9、来标识它所引用的对象引用是对指针的包装,比指针更高级指针是C语言就有的底层概念,使用起来很灵活,但用不好容易出错引用隐藏了指针的“地址”概念,不能直接对地址操作,比指针更安全引用与指针的选择什么时候用引用?如无需直接对地址进行操作,指针一般都可用引用代替用更多的引用代替指针,更简洁、安全什么时候用指针?引用的功能没有指针强大,有时不得不用指针:引用一经初始化,无法更改被引用对象,如有这种需求,必须用指针;没有空引用,但有空指针,如果空指针有存在的必要,必须用指针;函数指针;用new动态创建的对象或数组,用指针存储其地址最自然;函数调用时,以数组形式传递大量数据时,需要用指针作为参数。动态申请内
10、存操作符 newnew 类型名T(初始化参数列表)功能:在程序执行期间,申请用于存放T类型对象的内存空间,并依初值列表赋以初值。结果值:成功:T类型的指针,指向新分配的内存;失败:抛出异常。例如:int int * *p;p;char char * *q;q;p = new int;p = new int;q = new char(a)q = new char(a)22释放内存操作符deletedelete 指针p功能:释放指针p所指向的内存。p必须是new操作的返回值。例如:int *p;p = new int;delete p;申请和释放动态数组分配:new 类型名T 数据长度 数据长度可以是任何表达式,在运行时计算释放:delete 指针p释放指针p所指向的数组。p必须是用new分配得到的数组首地址。例如:int *p;p = new int10;p0 = 1;.delete p;23命名空间:namespace命名空间可以将全局空间分为不同名称的范围。避免名字的冲突。例如:a.h 中有一个变量为sum。b.h中有一个变量叫sum。如果把两个头文件都包含进来。会造成名字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广东深圳福田区美莲幼儿园招聘3人备考题库及答案详解(易错题)
- (2025年)社会工作者考试模拟试题附答案
- 2025年度葫芦岛市市直部分事业单位公开招聘高层次人才84人备考题库及1套参考答案详解
- (2025年)采购专员考试试题及答案
- 2026年浦东新区公办学校教师招聘考核通过人员备考题库(第一批)及一套答案详解
- 2026吉林大学白求恩第一医院教学部招聘备考题库有完整答案详解
- 2025年财经法规习题+答案
- 2025福建厦门市杏南中学产假顶岗教师招聘1人备考题库及1套完整答案详解
- 2025年监控室考试试题及答案
- 2025年牙科门诊考试试题及答案
- 福建省网络安全事件应急预案
- 五育融合课件
- 意识障碍的判断及护理
- 储能电站安全管理与操作规程
- 2025年宿迁市泗阳县保安员招聘考试题库附答案解析
- 交通安全企业培训课件
- 2025年广东省中考物理试卷及答案
- 皮革项目商业计划书
- 主管护师护理学考试历年真题试卷及答案
- 华文慕课《刑法学》总论课后作业答案
- 公路护栏波型梁施工方案
评论
0/150
提交评论