数组:
数组是由固定数目且类型相同的元素所组成的数据结构。在C++中一维数组的声明格式如下:Type name[length],其中length并不是必须元素,如果length显式给出,则显式的说明了数组的长度,并且可以全部或者部分的给出数组元素的初始值,如果只给出部分数组元素,则未给出的数组元素默认赋初值为“0”;如果length没有显式的给出,则其数组元素必须全部给出并赋初值。二维及多维数组的声明格式为:Type name[expression1]
[expression2]...。以二维数组为例expression1和expression2分别表示数组的行数和列数。与一维数组相似,如果显式的给出了行数和列数,则数组元素可以全部或部分给出,但是二维数组中可以省略行数,但不允许省略列数。当省略行数的时候必须给出全部的元素并赋初值。
注意:C++字符数组中要注意数组的长度与元素个数的关系。在C++中字符串以“\0”为字符串结束的标志,虽然在字符串中为显式给出但是它在数组中仍然占有一个字节的存储空间。如 char S1[ ]="abcd",该数组的长度应该为5,占有5个字节的存储空间而不是4个。这也就决定了字符数组的初始化有两种方式,一种是:char S1[ 5]="abcd",另一种方式是 char S1[4]={'a','b','c','d'}
指针:
C++中指针和数组的关系是密不可分的,指针指向的是一个内存地址,我们可以简单地理解为指针也是一个存储空间,只不过这个存储空间中存放的不是变量的值,而是一个变量的地址。说指针和数组密不可分是因为数组名本身也是一个指针,只不过它指向的是数组第一个元素的地址,如果用一个数组名给一个相同类型的指针赋值的话,则在指向数组元素的作用上两者是一样的。例如:int S1[3]={1,2,3}; int *P;P=S1;则P=S1表示数组名S1指向的是数组元素“1”的地址,指针P指向的也是数组元素“1”的地址。又由于数组的相邻元素在内存中时连续紧邻排列的,所以下列各式:*(P+1)、S[1]、P[1]、*(S1+1)表示的是同一个元素,即都是元素“2”,同时这几个式子也说明指针是可以和整型数进行运算的,但是指针和指针之间除了赋值运算外不可以进行运算。
引用:
引用是给某个对象建立一个别名。建立引用后对引用所进行的任何操作实际上是对所代表的数据对象的操作。
引用的一个重要用途是传递函数参数。用引用做函数形参有两方面的作用:(1)可以达到类似于“传地址”的效果,避免C++“传值”参数传递方式不能通过形参改变实参的不便(2)对于较大的对象,可以提高参数传递的效率。因为引用的建立,要比对象间的赋值要快。
分享到:
相关推荐
数组指针(也称行指针) 定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。 如要将二维数组...
1 数组及其简单应用 2 指针及其简单应用 3 指针与数组 4 字符串 5 指针数组与命令行参数 6 引用
第四章 数组、指针与引用(计算机等级考试二级C++) 第四章 数组、指针与引用(计算机等级考试二级C++)
C++程序设计:第4章 数组指针和引用.ppt
C/C++ 数组和指针及引用的区别 1.数组和指针的区别 (1)定义 数组是一个符号,不是变量,因而没有自己对应的存储空间。但是,指针是一个变量,里面存储的内容是另外一个变量的地址,因为是变量所以指针有自己的...
本文从初学者的角度,深入浅出地讲解C++中的指针、数组指针与函数指针,对最常混淆的引用传递、值传递和指针传递做了区处,需要的朋友可以参考下
。。。
。。。
。。。
。。。
本工程包括以下内容:(开发环境:VC6.0) 1.双重指针的用法实例; 2.引用的用法实例; 3.指针函数的用法实例; 4.区别指针数组与数组指针的用法实例; 5.迷途指针的用法实例;
#include using namespace std; //自定义结构体类型 struct date { int month; //结构体变量名定义 int day; int year; }; struct teacher { int num; char name[20]; struct date birthday;......
C#调用c++dll文件是一件很麻烦的事情,首先面临的是数据类型转换的问题,相信经常做c#开发的都和我一样把学校的那点c++底子都忘光了吧(语言特性类)。 网上有一大堆得转换对应表,也有一大堆的转换实例,但是都没有...
4、 可以管理用new分配的内存块中的部分内存空间,即可以替代C++引用,并且保证内存正常释放,如: class A{}; class B{public: A a;}; shared_ptr<B> pb=new(ydsh,(B*)0) B; shared_ptr<A> pa=&pb->a; 5、 ...
展示一下使用指针的指针和指针的引用修改传递给方法的指针,以便更好的使用它。(这里说的指针的指针不是一个二维数组) 为什么需要使用它们 当我们把一个指针做为参数传一个方法时,其实是把指针的复本传递给了...
C++中指针指向二维数组实例详解 一维指针通常用指针表示,其指向的地址是数组第一元素所在的内存地址,如下 int ary[4][5]; int(*aryp)[5] = ary; 那么ary[4]相当于int(*aryp),以下理解如此,但参数传递需要知道...
● 数组和指针之间的关系 ● 引用的概念及声明方法,关于使用引用的几点初步建议 ● 如何在本地C++程序中给变量动态分配内存 ● 如何在CLR 程序中动态分配内存 ● 跟踪句柄和跟踪引用的概念,CLR 程序...
这是初学者可以参考的c++资料,里面介绍了关于指针的各种知识,包括指针的基础,指针与数组,指针与字符串,指针与函数,引用等。
2013级,C++程序设计课件。第6章 指针,内容 6.1 指针的概念 6.2 变量与指针 6.3 数组与指针 6.4 字符串与指针 ...6.7 指针数组和指向指针的指针 6.8 有关指针的数据类型和指针运算的小结 *6.9 引用