C++的一些知识以及和C语言的不同
2017-02-07 22:44
309 查看
1.数据类型
- c++提供了新的数据类型:bool型
2.初始化方法
- c语言:
- c++ : 除了复制初始化还有直接初始化:
3.随用随定义
- c语言必须先最前面定义
- c++可以在中间随用随定义
4.输入和输出
- cin和sin
-
-
- endl其实就代表一个回车
-
-
- 优点:不用关注占位符,不用关注数据类型
5.命名空间
- 关键字:namespace
要想输出A的x和B的f1则:
6.引用
结构体类型的引用同理
指针类型的引用:
引用作函数参数:
不使用引用时:
7.const
const与指针:
const与引用:
宏定义也是定义常量,但是系统不检查错误.
8.函数
参数默认值
最右边的参数必须赋值
实参覆盖默认值
==
函数重载
名称相同参数可辨
==
内联函数
inline
效率高 但条件有限
9.内存管理
使用new来申请内存,使用delete来释放内存
C语言使用
申请内存需要判断是否成功,释放内存需要设空指针
- 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) //释放内存
申请内存需要判断是否成功,释放内存需要设空指针
相关文章推荐
- Java与C/C++不同的一些基础知识点
- 关于C语言与C++的一些小知识总结
- C语言中关于数组、指针以及函数的一些基本知识
- C语言C++以及PYTHON知识结构图
- C/C++一些知识2(指针)
- C/C++一些知识4(重载与多态、虚继承)
- c++碰到的一些细节知识
- SNMP口令的利用以及一些相关知识
- C与C++的一些不同之处
- 有关C语言的一些知识
- 自己总结C/C++的一些容易被遗忘的基础知识!
- C/C++一些知识3(面向对象)
- 跨平台C++软件开发中,由于不同操作系统对Unicode的支持差异,而导致的一些问题及解决方案。
- 跨平台C++软件开发中,由于不同操作系统对Unicode的支持差异,而导致的一些问题及解决方案
- DLL函数重载,以及一些前提知识的整理~
- C/C++一些知识5
- 关于取英文名的一些知识,以及我的几个备选英文名
- 今天学到的C++的一些新知识!
- windows程序设计的一些基础知识点——内核对象以及它们的句柄
- 一些背我遗忘又比较有用的C++语法知识