字符串以:'\0'结尾。
初始化字符串数组其余字符用'\0'结尾,然后用'\0'填充其余位置如:char boss[8]= "BOZO";
BOZO\0\0\0\0
cin使用 空格 制表符 换行符确定字符串结束位置。
每次读取一行字符串输入:getline(),例:cin.getline(name,20);通过换行符来确定行尾。
get(),例:cin.get(name,ArSize).get();//get()用来处理换行符
string类的赋值拼接和附加:
string str1;
string str2 = "hello";
str1=str2;
string str3;
str3 =str1 + str2;
str1 += str2;
string其他操作:
复制:strcpy(str1,str2)
拼接:strcat(str1,str2)
对于未初始化的字符串数组长度未知,因为strlen()是从数组的到遇到空字符。
共用体union
union one4all
{
int int_val;
long long_val;
double double_val;
};
适用于一个变量有多种格式,共用体的长度为其最大成员长度。
匿名共用体与结构体共用名字。
枚举enum
enum color{red,blue};
color band;
band = red;
枚举量可以提升为int,int不能自动转换为枚举。例如:int num = blue ;//合法
band = 1;//不合法
num = 3 + red;//合法
但是可以强制类型转换,例如: band = color(1);//band->blue
可以显式的给设置枚举变量的值
例如:enum color{red = 1 , blue = 3};
指针
home是一个变量,则&home是他的地址,*加地址表示地址存储的值。
int pt = &higgens; //将pt(而不是pt)初始化为&higgens
指向int的指针的长度和指向double的指针的长度一样。而*pt的长度是其类型的长度,例如:int *pt = new int; size of pt = 4 ,size of *pt = 4
释放内存:delete
(1)一个new对应一个delete。
(2)不要使用delete释放同一内存两次。
(3)new []数组需要释放必须用delete []。
(4)可以对空指针使用delete。
C++将数组名解释为地址
对数组使用sizeof得到是数组长度,对指针使用sizeof得到指针长度。
例:
int wages[3] = {1,2,3};
int *pt = wages;
sizeof(wages) = 24;
sizeof(pt) =4;
wages[3] = *(wages+3)
指针和字符串
如果cout一个字符的地址,他将会从该地址开始一直输出直到一个空字符
应使用strcpy/strncpy将字符串赋值给数组
vector和array类暂且不表,后续会深入学习。