C++复合类型

数组array

1 数组结构

数组声明应该有以下三点:
{
存储在每个元素中的值的类型;
数组名;
数组中的元素个数;
}
即:

 typeName arrayName[arraySize] 

arraySize 必须时整型或者const值,也可以是常量表达式(8*sizeof(int))

2 数组使用

int yam[3]={1,2,3};

在该数组中

yam[0]=1;

3 数组使用规则

数组只能在定义时初始化;
不能将图个数组赋给另一个数组;

int yam[3];
yam[3]={1,2,3}
int hand[3];
hand=yam;

这种写法是错误的。

字符串数组

1字符串数组结构

char stringName[stringSize];
char dog[11]="Mr. Cheeps";

字符串包含后面的空字符,没有空字符不是字符串。
”s"表示字符串s 和\0 两个字符
's'表示ASCII 83的另一种写法。

strlen[stringName];
sizeof[stringName]

第一句求字符串的长度,第二句求的是数组的长度,包括空字符。

2 字符串数组的输入

面向行的输入:getline()

getline()读取整行,通过回车来结尾。

cin.getline(charName, cinSize);

面向行的输入:get()

cin.get(charName,Arsize);

getline()不再读取并丢弃换行符,get()将换行符留着输入队列中

cin.get(charName,Arsize).get();

字符串string类

要使用string 类,头文件必须包含string。

using namespace std;
std::string;

string 类的结构

string str;
string str1="panther"

string类的赋值和拼接、附加

不能将一个数组赋给另一个数组,但是可以将一个string对象赋给另一个string对象。

赋值

string str1;
string str2 {"panther"};
str1=str2;

拼接

string str3;
str3=str1+str2;
str1+=str2;
strpy(str1,str2);

注意此时str3和str1的值相等。

求字符串长度方法

int len1=str1.size();
int len2=strlen(str1);

结构简介

结构声明

struct structName
{
结构体成员
};

结构体在外部声明,可以用在文件的所有函数中。
局部声明只能用在该函数中。

创建结构数组,结构变量及结构指针

structName arrayName[arraySize]
structName typeName i;
sturctName *p;

枚举

enum spectrum{red,orange,yellow, green,blue}

指针

指针是一个变量,其存储的值是地址,而不是值本身。地址运算符&。
*运算符是间接值或解除引用运算符。
假设p是一个指针,*p指的是,在指针p所指向的地址里存储的值。
*p与常规Int等价。

声明和初始化指针

指针声明必须指定指针指向的数据的类型。

typeName * pointerName;
int * ptr;
char* str;

表示这个指针指的地址存储的是什么类型的值.
注意:一定要在对指针应用解除引用运算符*之前,将指针初始化为一个确定的,适当的地址。

指针赋值

应将内存地址赋给指针。可以对变量应用&运算符,来获得被命名的内存的地址,new运算符返回未命名的内存的地址:

double *pn;
double* pa;
char* pc;
double bubble=3.2;
pn=&bubble;
pc=new char;
pa=new double[30]

你可能感兴趣的:(C++复合类型)