1.新的数据类型:C++比C语言多了一个bool的数据类型。
2.新的初始化方法:不只是int i=1024;还包括int i(1024);的初始化方法。
3.随用随定义:就是C++使用的变量不需要一定在函数的刚开始就全部声明,可以在使用过程中再声明。
4.输入和输出和C语言不同,不用区分变量的类型。输入时cin >>和输出时cout<<。
5.命名空间的定义以及使用:命名空间的定义和使用,不仅要引用头文件,还要使用头文件里面的命名空间。
namesapce A
{
int x = 0;
void f1();
void f2();
}
namespace B
{
int x =2;
void f1();
void f3();
}
usning namespace A;
usning namespace B;
int main()
{
cout << A::x << endl;
B::f1();
return 0;
}
6.引用的使用
⑴变量的引用:相当于变量的别名,改变变量的值会改变引用的值,改变引用的值也会改变变量的值。
//变量的引用
int a = 10;
int &b = a;
b = 20;
cout << a << endl;
a = 30;
cout << b << endl;
⑵结构体类型的引用
typedef struct
{
int x;
int y;
}Coord;
//结构体的引用
Coord c;
Coord &c1 = c;
c1.x = 40;
c1.y = 50;
cout << c1.x << "," << c1.y << endl;
⑶指针变量的引用
//指针变量的引用
int x = 60;
int *p = &x;
int *&q = p;
*q = 70;
cout << x << endl;
⑷函数声明的引用
//函数传参的引用
int m = 80;
int n = 90;
cout << m << "," << n << endl;
fun(m,n);
cout << m << "," << n << endl;
7.关键字const
⑴const 与变量
const int m = 80;
m = 90;//错误的
int n = 4;
const int a = n;
a = 5;//错误的
⑵const 与指针类型:const int *p = NULL与int const *p = NULL中的const关键字是等价的,int *const p = NULL
int x = 3;
const int *p = &x;// 等价于:int const *p = &x;
p = &y;//正确的
*p = 4;//错误的
int x = 4;
int *const p = &x;
p = &y;//错误的
*p = 4;//正确的
int x = 5;
const int *const p = &x;
p = &y;//错误的
*p = 4;//错误的
⑶const与引用
int m = 80;
const int &n = m;
m = 90;//正确的
n = 100;//错误的
8.函数参数默认值
⑴有默认参数值的参数必须在参数表的最右端。
⑵函数声明的时候有默认值,而定义的时候不必有默认值。
⑶无实参则用默认值,否则实参覆盖默认值。
9.函数重载
⑴在相同作用域内
⑵用同一函数名定义的多个函数
⑶参数个数和参数类型不同
10.内联函数
⑴关键字:inline
⑵编译时将函数体代码和时擦代替函数调用语句
⑶内联编译是建议性的,由编译器决定
⑷逻辑简单,调用频繁的函数建议使用内联
⑸递归函数无法使用内联方式
11.内存的申请和释放
⑴new和delete是运算符,不是关键字。用来申请和释放内存。
⑵申请和释放块内存
int *arr = new int[10];//申请内存
if(NULL == arr)
{
//内存分配失败
//异常处理
}
delete []arr;//释放内存
arr = NULL;
⑶申请内存是否成功,释放内存需要设空指针。