数组

一种数据格式,能够存储多个同类型值.

声明

数组声明应指出以下三点:
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();

你可能感兴趣的:(数组)