一种数据格式,能够存储多个同类型值.
声明
数组声明应指出以下三点:
1.存储类型
2.数组名
3.数组中的元素个数
typeName arrayName[arraySize];
*arraySize:指定元素数目,必须是整型常数或const值,也可以是常量表达式.不可以是变量,但可以用new运算符避开这种限制.
赋值及初始化
int yam[3]; //创建数组,指定元素数目为3
yam[0]=7,yam[1]=8,yam[2]=6; //索引访问分别赋值
int yamcosts[3]={20,30,5}; //在声明语句中初始化数组
初始化规则:
1.只能在定义数组时才能使用初始化,此后不行,也不能将一个数组赋值给另一个数组.
int cards[4]={3,6,8,10}; //okay
int hard[4]; //okay
hand[4]={1,2,3,4}; //not allowed
hand=cards; //not allowed
2.初始化时提供的值可以少于数组的元素数目,此时编译器将把其他未初始化的值设置为0.
3.若初始化时[]内为空,编译器将计算元素个数
short things[]={1,5,3,8}; //编译器将使things数组包含4个元素
*C++数组初始化方法
1.初始化数组时可省略等号"="
2.可不在大括号{}内包含任何东西,这将把所有元素置0
3.禁止类型缩窄转换
字符串
1.1.C-风格字符串
以空字符'\0'结尾的字符数组
1.1.1.赋值与初始化
char dog[5]={'d','o','g','s','a'}; //不是字符串
char cat[5]={'a','c','a','t','\0'}; //是字符串
字符串常量/字符串面值:隐式地包括结尾的空字符,初始化时只需一对双引号:
char birds[11]="Mr.Cheeps"; //the \0 is understood
char fish[]="Bubbles"; //let the comiler count
*字符串常量实际表示的是字符串地址
1.1.2.strlen()
该函数返回存储在数组中的字符串长度,而不是数组本身的长度.同时只计算可见的字符,不把空字符计算在内.
*sizeof()返回数组本身的长度.
1.1.3.strcpy()
需包含头文件cstring,下同
strcpy(charr1,charr2); //copy charr2 to charr1
1.1.3.strcat()
strcat(charr1,charr2); //append contents of charr2 to charr1
1.2.C++string类
经由ISO/ANSI C++98标准扩展,使用时必须在程序中包含头文件string
1.2.1.赋值与初始化
string对象和字符数组间的主要区别时可以将string对象声明为简单变量而非数组:
string st; //create an empty string object
类设计让程序能够自动处理string的大小,上例创建一个长度为0的string对象,但程序若将输入读取到st中时,将自动调整st的长度.
此外:
可以使用C-风格字符串初始化string对象
可以将列表初始化({})用于string对象
可以使用数组表示法来访问存储在string 对象中的字符
但可以将一个string对象赋给另一个string对象.
可以使用"+"将两个string对象合并起来
1.2.2.size()
是string类的一个类方法,返回字符串长度
string st="Hello!";
int length=st.size();