c和c++的关系
C语言是结构化和模块化的语言,面向过程。未完全实现解决软件设计危机的目标。
C++保留了C语言原有的优点,还扩充了不少功能 :
- 增加了面向对象的机制。
- 对C语言的功能做了扩充:
- 变量的定义可以出现在程序中的任何行
- 提供了标准输入输出流对象cin,count
- 用const定义常变量
- 函数重载,函数模板,带默认值的函数
- 引用类型
- 单目作用域运算符
- string类型字符串
- 使用new和delete代替malloc和free函数等
c++的编译和执行过程
c++的编译和执行过程和C语言的编译和执行过程基本上是一样的,只是环境不一样。
c++的编译和执行过程
- (1)编译( 预处理->编译->目标文件)
形成目标代码/文件,目标代码是编译器的输出结果,常见扩展名为" .o " 或" .obj " - (2)连接
将目标代码跟C++函数库相连接,并将源程序所用的库代码与目标代码合并
形成最终可执行的二进制机器代码(可执行程序 .exe) - (3)运行
在特定的机器环境下运行C++应用程序
用c++输出一个hello world
通过上图你会发现在c++中导入一个库函数,库函数的名不在需要.h了
在c++中基本输入输出函数的标准库是iostream
在C语言中基本输入输出函数的标准库是stdio.h
上述代码中:
using namespace std; 的作用:
使用名称空间std,std的全称是standard(标准)。
使用标准的名称空间
名称空间是一项c++特性,用来在编写大型程序时组织源代码。
当不用标准的名称空间时:代码如下
你会发现名称空间就好像一个标签。
例: 全国有好多叫 小明的。
使用河南的名称空间之后
默认说的小明都是河南的小明(cout)。
如果没有说明河南的名称空间。
则在说小明前得加一个前缀.例: 河南-小明(std:: cout)
endl 和 '\n'的区别
'\n' 就是代表单纯的换行。
endl (1)代表换行 (2) fflush(stdin) 清除缓冲区
c++是完全兼容c的