资源描述:
《嵌入式Linux下C程序设计--02-1数组,指针,引用,内存分配,命名空间》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、嵌入式Linux下QT程序设计主讲:成宝宗2本章主要内容数组指针引用指针与数组指针与引用动态存储分配命名空间3数组的概念数组是具有一定顺序关系的若干相同类型变量的集合体,组成数组的变量称为该数组的元素。数组属于构造类型。4一维数组的声明与引用一维数组的声明类型说明符数组名[常量表达式];例如:inta[10];表示a为整型数组,有10个元素:a[0]...a[9]数组成员必须先声明,后使用。只能逐个引用数组元素,而不能一次引用整个数组例如:a[0]=a[5]+a[7]-a[2*3]数组名的构成方法与一般变量名相同。5一维数组的声明与成员引用#includeusi
2、ngnamespacestd;intmain(){inta[10],b[10];for(inti=0;i<10;i++){a[i]=i*2-1;b[10-i-1]=a[i];}for(inti=0;i<10;i++){cout<<"a["<
3、a[6]a[7]a[8]a[9]a7一维数组的初始化可以在定义数组的同时赋给初值:在声明数组时对数组元素赋以初值。例如:staticinta[10]={0,1,2,3,4,5,6,7,8,9};可以只给一部分元素赋初值。例如:staticinta[10]={0,1,2,3,4};在对全部数组元素赋初值时,可以不指定数组长度。例如:staticinta[]={1,2,3,4,5}8声明例:inti;int*ptr=&i;指向整型变量的指针概念指针:内存地址,用于间接访问内存单元指针变量:用于存放地址的变量20003ptr*ptri2000内存用户数据区变量i变量j变量ptr36
4、2000200020043010引用例1:i=3;例2:*ptr=3;指针变量的概念9指针的声明、赋值与使用#includeusingnamespacestd;intmain(){inti;//定义int型数iint*ptr=&i;//取i的地址赋给ptri=10;//int型数赋初值cout<<"i="<5、种运算的结果值取决于指针指向的数据类型。p1[n1]等价于*(p1+n1)指针加一,减一运算指向下一个或前一个数据。例如:y=*px++相当于y=*(px++)(*和++优先级相同,自右向左运算)引用引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。例如对引用进行输出、赋值等操作。6变量引用存储空间声明引用引用其实是变量的另一个名字。因此,与变量同样的,在使用引用前也需要对其进行声明,引用的声明语句如下:类型标识符&引用名=目标变量名;例如,下列语句声明了一个对整型变量a的引用ra。inta;int&ra=a;//定义引用ra,它是变量a的引用,即别名声明r
6、a是对整数的引用,初始化为引用a。在这里,要求a已经声明或定义。引用不是值,不占存储空间。声明引用时,目标的存储状态不会改变。13指针与数组声明与赋值例:inta[10],*pa;pa=&a[0];或pa=a;通过指针引用数组元素经过上述声明及赋值后:*pa就是a[0],*(pa+1)就是a[1],...,*(pa+i)就是a[i].a[i],*(pa+i),*(a+i),pa[i]都是等效的。不能写a++,因为a是数组首地址是常量。14设有一个int型数组a,有10个元素。用三种方法输出各元素:使用数组名和下标使用数组名和指针运算使用指针变量#includeus
7、ingnamespacestd;intmain(){inta[10]={1,2,3,4,5,6,7,8,9,0};for(inti=0;i<10;i++)cout<usingnamespacestd;intmain(){inta[10]={1,2,3,4,5,6,7,8,9,0};for(inti=0;i<10;i++)cout<<*(a+i