根本区别: C面向过程,C++面向过程,也面向对象
关系:C++可兼容C的程序,C可看作C++的子集
改变
一.新增类型:布尔类型bool(C99标准已经增加bool)
二.初始化方式:
(1)复制初始化:int x=1024; //C中仅有的初始化方式
(2)直接初始化:int x (1024); //速度更快
三.随用随定义:不必将所有的定义写在函数首部(C99标准已经增加随用随定义)
Ps:C99标准前的部分不严谨的编译器允许随用随定义
四.输入输出:
1.流程不变:
输入设备–>输入流—>语句–>变量
输出设备–>语句–>输出流—>变量
2.区别:
C中的语句为printf,scanf函数
C++中的语句为cin,cout
3.示例:
cout<<otc<<x<<endl; //x以八进制输出,endl类似”\n”
cout<<dec<<x<<endl; //x以十进制输出
cout<<hex<<x<<endl; //x以十六进制输出
cout << boolalpha << y<<endl;
cin>>x;
4.补充
oct是一个函数。这个函数的输入是一个io流,返回值也是一个io流。
oct, dec, hex这三个函数的作用只是在io流中设置一个格式标志位。
cin返回false:
(1)读到EOF
A.在读文件到末尾时会产生一个EOF,
B.在直接输入时也是可以键入’EOF’的,不过不同的命令行下输入EOF的快捷键不一样
(2)读入错误类型时会false。
5.优势:因不用关注占位符,数据类型等而减少出错
五.命名空间namespace
1.定义:
namespace A{
int x;
void fun(){
}
}
2.使用:using namespace std; //不必再A::x
3.补充:如果是写成iostream.h的话就不用写using namespace std; 了,
C++标准库的头文件全不带.h结尾。 最好使用C++的命名惯例。
实际上C++中老的C标准库头文件也不带 .h 结尾,而是在前面加上’c’来区分。比如C的函数库