您的位置:首页 > 编程语言 > C语言/C++

C++的一些知识以及和C语言的不同

2017-02-07 22:44 309 查看
1.数据类型

- c++提供了新的数据类型:bool型

2.初始化方法

- c语言:
int x = 1
(复制初始化)

- c++ : 除了复制初始化还有直接初始化:
int x(1)


3.随用随定义

- c语言必须先最前面定义

- c++可以在中间随用随定义

4.输入和输出

- cin和sin

-
cout<<x<<endl;


-
cout<<"x+y="<<x+y<<endl;


- endl其实就代表一个回车

-
cin>>x;


-
cin>>x>>y;


- 优点:不用关注占位符,不用关注数据类型

5.命名空间

- 关键字:namespace

namespace A
{
int x=0;
void f1();
void f2();
}
namespace B
{
int x=2;
void f1();
void f3();
}


要想输出A的x和B的f1则:

cout<<A::x<<endl;
B::f1();


6.引用

int a=3;
int &b=a;//引用必须初始化


结构体类型的引用同理

指针类型的引用:

类型 *&指针引用名 = 指针;


引用作函数参数:

void fun(int &a, int &b)
{
int c=0;
c = a;
a = b;
b = c;
}


int x = 10,y = 20;
fun(x,y);//调用的时候直接写x,y就能改变x,y的值


不使用引用时:

void fun(int *a, int *b)
{
int c=0;
c = *a;
*a = *b;
*b = c;
}


int x = 10,y = 20;
fun(&x,&y);//改变x,y的值


7.const

const与指针:

int x = 3;
const int *p = &x;
//p = &y; 正确
//*p = 4; 错误


int x = 3;
int *const p = &x;
//p = &y;是错误的


const int x =3;
const int *const p = &x;
//p = &y;
//*p = 4;
//都是错误的


const与引用:

int x = 3;
const int &y = x;
//x = 10;正确
//y = 20;错误


const int x = 3;
int *y = &x;
//错误,因为指针是可变的,而指针指向的x是不可变的,这样我们就用一个权限大的去接受一个权限小的,有危险(可以通过改变指针的值来改变x,不可行)。


int x = 3;
const int *y = &x;
//正确,用权限小的去接受权限大的


宏定义也是定义常量,但是系统不检查错误.

8.函数

参数默认值

最右边的参数必须赋值

实参覆盖默认值

==

函数重载

名称相同参数可辨

==

内联函数

inline

效率高 但条件有限

9.内存管理

使用new来申请内存,使用delete来释放内存

C语言使用

void *malloc(size_t size)//申请内存
void free(void *memblock) //释放内存


申请内存需要判断是否成功,释放内存需要设空指针
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: