C和C++的区别整理从最简单的Hello World程序开始。
//c++ program
#include <iostream>
using namespace std;
int main(void)
{
cout << "Hello World!" << endl;
return 0;
}
//c program
#include <stdio.h>
int main(void)
{
printf("Hello World!\n");
return 0;
}
上面两段程序分别是C++和C程序打印输出Hello World,两段程序功能相同,对比可以看出有如下区别:
1.头文件名的区别
C语言的传统是头文件使用扩展名 h,将其作为一种通过名称标识文件类型的简单方式。例如 math.h支持一些数学函数。
C++系统文件后缀不带.h,用户定义的可以带。
有些C头文件被转换成C++头文件,这些文件被重新命名,去掉了扩展名h,并在文件名称前面加上前缀c(表示来自C语言)
2.名称空间
名称空间是C++的特性之一,简单理解为:可以将自己的产品封装起来。
用名称空间编译指令来使iostream中的定义对程序可用,即
using namespace std;
有了这句using编译指令,才能使用cout、cin等,或者用第二种方式:
using std::cout;
using std::cin;
using std::endl;
上述两段程序中,可以简单理解为
#include <iostream>
using namespace std;
和
#include <stdio.h>
这两段功能差不多。
3.使用cout进行C++的输出
上面的程序有这条C++语句:
cout << "Hello World!" << endl;
<<符号表示该语句将把这个字符串发送给cout,该符号指出了信息流动路径。 cout是一个预定义的对象。
从概念上看,输出是一个流,即从程序流出的一系列字符。cout对象表示这种流,其属性是在iostream文件中定义的。
cout的对象属性包括一个插入运算符(<<),它可以将其右侧的信息插入到流中。
endl 是换行,因此下面这样写也能得到一样的效果:
cout << "Hello World!\n";
该条语句还与C语言的printf("Hello World!\n");
效果相同