导图社区 第三章思维导图
C++引用string类方面的思维导图
编辑于2020-04-02 17:24:33第3章
指针(变量)
定义
<指针类型>*<指针名>
int*p;
int* p;
int * p;
int *p;
有“*”代表定义了一个指针
数组名是指针常量
*p代表:取出p所指单元格的内容
“*”
当“*”放在定义语句中,为定义某个变量为指针变量。 eg:int * p;
当“*”放在除定义语句以外且在指针变量前是作为间接引用符,即取指针变量所指向数据的内容
eg:int a=b, b; int *p=&a; b=*p; b的值为6
其他“*”为运算符号
取其内容时,“*”放在“=”左右都可以
运算
1.在指针指向数组元素时
加一个整数(用+或者+=),如p+1
减一个整数(用+或者+=),如p-1
自加 运算
p++:先将p的值取出来做运算,再对p的值+1
++p:先将p的值做+1运算,再取出p的值
自减 运算
p--:先将p的值取出来做运算,再对p的值-1
--p:先将p的值做-1运算,再取出p的值
2.两个指针相减时,如p1-p2(只有p1和p2都指向同一数组中的元素才有意义) 两个指针不能相加,会出现溢出错误
3.若指针变量p已指向数组中的一个元素
p+1指向同一数组中的下一个元素
p-1指向同一数组中的上一个元素
p+/-1是p的值加上或者减去一个数组元素所占的字节数
4.若p的初值为&a[i],则p+i和a+i就是数组元素a[i]的地址
5.*(p+i)或*(a+i)是p+i或a+i所指数组的元素,即a[i]
6.若p1指a[3],p2指a[7]则p2-p1=7-3=4
指针与数组
数组名 (指针常量)
一维数组名:类型说明符 数组名[常量表达式]
二维数组名:数据类型 标识符[常量表达式1][常量表达式2]…;
a[0]含义:一维数组名,指向a[0]数组的首个元素
a的含义:二维数组名,指向第一个行数组
*a[0]与a[0][0]的值相等
指向数组的指针
定义与赋值:
int a[10],*pa; pa=&a[0];或pa=a;
等效的形式
*pa就是a[0]
*(pa+1)就是a[1]
*(pa+i)就是a[ i ]
a[i],*(pa+i),*(a+i),pa[i]都是等效的
一维数组
表示
int a[i]
二维数组
表示
1.a[i][j]
2.*(*(a+i)+j)
3.*(a[i]+j)
4.(*(a+i))[ j ]
指针数组
数组的元素是指针类型
例:point*pa[2;] 由pa[0]、pa[1]两个指针组成
格式
<类型>*<数组名>[c1][c2]…[cn]
引用
说明格式
<数据类型> & <引用名>=<变量名>
意义
引用是一种特殊的变量,可以被认为是另一变量的别名
通过引用名和被引用的变量名访问变量的效果是一样的
注意事项
1.创建一个引用时,该引用必须被初始化
2.一旦一个引用被初始化指向一个变量,则它不能被改变为另一个变量的引用
3.不能有空引用。在程序中必须要确保引用是和一块正确的存储区域关联
4.不是所有类型的数据都可以引用,对于void和数组名不可以引用,但是可以说明对数组的某个元素的引用
引用作为形参
引用类型的形参通过形实结合,成为实参的一个别名,对形参的任何操作也会直接作用于实参
在函数调用时发生的参数传递,称为引用传递
string类型
C风格字符串
初始化方式
1.char cstr[4]={'y','o','u','\0'};//必须手工添加结束符
2.char cstr[4]='you';//编译器自动加上结束符'\0'
修改时执行速度快
修改
1.getsline()函数
2.for循环
string
必须包含头文件<string>
优点
能够自动的根据文本大小确定相应的存储空间
不需要指定字符串的大小
不需要用'\0'做结束符
操作符
赋值
=
把一个字符串赋值给另一个字符串
+=
把两个字符串连接起来,并赋值给第一个字符串
比较
==
判断两个字符串是否相等,如果相等,返回值为真
!=
判断两个字符串是否不相等,如果不相等,返回值为真
>
判断第一个字符串是否大于第二个字符串,如果条件成立,返回值为真
<
判断第一个字符串是否小于第二个字符串,如果条件成立,返回值为真
>=
判断第一个字符串是否大于等于第二个字符串,如果条件成立,返回值为真
<=
判断第一个字符串是否小于等于第二个字符串,如果条件成立,返回值为真
输入/输出
>>
用于输入字符串
<<
用于输出字符串
访问字符
[ ]
用于访问字符串中的指定字符
联接
+
联接两个字符串
常用string函数
1.clear(),把字符串清空成零长度的值
2.empty(),判断字符串是否为空
3.length(),返回字符串中的字符个数
4.c_str(),通过string类型的字符串建立一个C风格字符串常量
5.swap(),交换两个字符串中的内容
修改
直接用赋值语句