发布日期:2015-12-22 11:07 来源: 标签: 编程语言 C++教程数组 C++小标及初始化元素 C++二维数组长度计算
本章我们主要学习C++数组中如何定义小标及初始化元素?如何使用字符二维数组以及数组长度计算方法,下面我们就做一下具体讲解,希望大家多多支持中国站长网络学院。
1、数组下标:
(1)在定义时必须明确。
    ①只能用正整数或const常量,静态或全局变量不可以;例如:const int length=5; int array[length];
    ②(特) 在new时可以用变量做下标。例如:int * array  =  new int[variable];
(2)在初始化时:
    ①一维数组,可略; 例如:int array[];
    ②二维数组,其一维可略,二维不能略。例如:int array [][3]={1,2,3,4,5,6};
(3)在作参数时:
    ①一维数组,略;(写了也被略去) 例如:void func(int array[]){}
    ②二维数组,一维略,二维不能略。 例如:void func(int array[][5]){}
2、下标与初始化元素:
(1)下标省略的,每个元素都应写出; 例如:int array[]={1,2,3,4,5};
(2)下标明确的,可只写前面部分元素,后面的按默认值: 例如:int array[5] = {1,2};
    ①全局数组、静态数组,默认值为0;
    ②局部数组,默认值不确定。
(3)元素之间不可以用逗号跳过。 例如:int array[5] = {1,2,,3,4};//error
3、字符数组:
(1)字符数组=字符串
(2)其末尾字符为' /0 '
(3)其长度=有效字符数+1,在定义字符数组长度时切记。
(4)初始化方法
   ① char arr[6] = {"hello"};
   ② char arr[6] = "hello";              //与第①种相同,一般使用这一个
   ③ char arr[6] = {'h','e','l','l','o','/0'};           //主要在特殊字符时使用
4、二维数组初始化:
(1)二维数组中,第1维表示行,第2维表示列。
(2)初始化时,可以每行使用1个{},比如int arr[][3]={{1,2,3},{4,5,6}};也可以只使用1个{},比如int arr[][3]={1,2,3,4,5,6};  与上面句子等效。
5、要定义很大的数组时,应建立全局或静态类型的数组。因为局部数组使用栈区,大数组会导致栈溢出。
6、数组长度计算:
(1)sizeof
   方法:sizeof(数组名)/ sizeof(数组类型名)
   说明:数组占用字节除以数组类型所占字节,结果为数组元素个数
(2)strlen
   说明:strlen,求字符串有效长度
   方法:strlen(字符数组名)  //结果为字符数组有效字符长度,不包括末尾的' /0'
注意:
当数组作为函数参数传递时,数组名代表的是数组的首址,而非数组内容,故无法使用sizeof和strlen;同时,在传址时,应提供2个参数:1个是数组名,代表数组首地址;1个是数组元素个数,以便确定传递的次数。
7、数组相当于指针——常量指针。
(1)对于指向数组的指针的定义,与指向普通变量的指针定义不同:
    int a=20;
    int p = &a;                //对普通变量定义时,前面要加上&
    int b[20];
    int pi = b;                 //对数组定义时,前面不用加&:因为数组本身相当于指针
(2)对于int *p = a[3]来说,a,&a,&a[0]等价,都是数组a的首元素地址。
8、数组是常量,不可修改:如对于数组a[2]来说,a++,++a,a--,--a,a+=3,a-=6等操作都是不允许的。

相关评论

专题信息
    C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。最新正式标准C++于2014年8月18日公布。 其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性! 本教程从基础讲解了C++语言,希望对大家有所帮助,望多多支持中国站长网络学院。