知识点总结
1:指针:指针持有一个对象的地址,称为指针指向这个对象,通过指针可以间接操作它指向的对象。
定义指针变量:类型 *指针变量 例如:int *pi
指针存放指定类型的地址,int *pi=&ival ,取地址用& pi=&x
可以通过指针间接访问该对象: *pi=y
空指针表示不指向任何对象,表示空指针的三种方法 :
int *pi=0; int pi=NULL; int pi=nullper;
指针也可进行运算:可以进行加减数值的算术运算自增自减运算适用于指向数组元素的指针。void指针为通用指针,可以是任何类型的地址值。注意:定义指针时应该对指针进行初始化。
数组与指针:使用数组时一般转化成指针,ia是一个int类型的指针常量,ia与&ia[0]都表示数组的第一个元素的地址。
一维数组元素在内存中按下标顺序依次存放,一维数组a[n]的元素a[i]在内存中地址是a+i。二维数组a[m][n]的元素a[i][j]在内存中地址是a+(in+j)。
begin(数组名)返回指向数组第一个元素的指针。end(数组名)
返回指向数组最后一个元素的下一个位置的指针。
C++语言通过new与delete两个运算符来进行动态存储空间的管理。
2:引用:引用又称别名,可以作为对象的另一个名字。可以间接操纵对象。
定义:类型 &引用变量=初始值
注意:引用必须被初始化,初始值是一个有内存地址的对象.一旦初始化完成,引用和他的初始对象一直绑定在一起,不能定义引用的引用。
例如:int x=100;int &r=x; r=y;(相当于x=y)
3:右值引用: 类型 &&右值引用变量=右值表达式 ,不能将右值引用直接绑定到左值上。
4:const限定指针:const int ival=1024;const int *pi=&ival ;const int *const pi=&ival
第一个const限定int,表示指针指向的单元为常量,第二个const限定pi,表示该指针的值也是常量。注意:不能将一个const地址赋值给非const指针。可以将一个非const地址赋值给const指针。
5:结构体:把一组来自不同类型的数据组合在一起,结构体形式:struct 结构体类型名{
成员声明;};
struct Date{
int day,
month, year;};a
a.day=1;
结构体成员的使用必须由结构体类型的变量通过“.”或者’->"
6:标准库类型string表示可变长度的字符序列。
标准库类型vector vector是对象,容纳着其他对象,被称为容器,是可变长度的向量。
7:函数:函数的定义:返回类型 函数名(参数列表){函数体}
函数之间通过传递参数和返回值进行通讯。
函数调用的一般形式:函数名(实际参数)
函数调用会使程序的控制权传递给被调用函数;函数执行完最后一条语句或是遇到return语句时返回。
遇到return语句时,结束函数执行,return语句:函数返回return语句中的值(如果有值的话),将控制权从被调函数转回到主调函数。函数的返回值用于初始化调用表达式的结果,之后继续完成调用所在的表达式的剩余部分。
return语句形式:return ;return 表达式;
函数在使用之前必须声明:返回类型 函数名(参数列表)
参数传递:指用函数调用的实参来初始化函数形参存储区的过程。
传递方式:传值:是将实参的值复制给形参,使用这种方式,调用函数本身不对实参进行操作,即使形参的值在函数中发生了变化,实参的值也完全不会受到影响,仍为调用前的值。形参与实参是两个独立的对象,用实参值初始化形参。
指针参数传递,引用参数传递,形参是实参的引用或是别名,函数操纵的形参是实参的别名,因而可以改变实参的值。
void swap(int &a,int&b){
int t;
t=a;a=b;b=t;} 通过传递引用可以在函数内修改实参的值,可以向主函数返回额外的结果,可以向函数传递大型的结构体变量或类对象。
函数重载:函数的名字相同,功能类似,参数不一样。
调用重载函数时:编译器会根据实参的类型推断出要调用是哪个函数。重载函数的参数表必须不同。