C vs. C++:差异与相似之处

C是C++的基础。虽然C++更广泛用于桌面应用和游戏,但对于软件世界的新手来说,从C开始是一个很好的选择。继续阅读以了解其中的原因。

C是什么?

C是一种高级结构化编程语言。用C编写的程序具有可移植性。C至今仍然是最重要的编程语言之一,因为它具有强大的功能。它被用于像嵌入式系统、驱动程序、内核、系统应用程序、微软Windows、苹果OS X等操作系统、以及像MySQL这样的数据库和一些物联网应用程序等复杂程序。

C是一种编译语言,因此在机器代码和程序之间提供了一层抽象。

一个简单的C程序用于添加两个数字的样子如下。

#include
int main()
{
int a, b, sum;
printf("Enter two numbers to add: ");
scanf("%d%d", &a, &b);
sum = a + b;
printf("nSum of %d and %d is %d", a, b, sum);
return 0;
}

以下是输出:

例子C程序的输出

C程序包括stdio.h——标准输入输出。

STDIO提供基本的输入输出函数,如printf和scanf。printf用于在控制台上打印文字(消息、输出),而scanf用于从控制台接收输入。我们使用%d来表示这些数字是整数。

如果输入小数,你将得到一些奇怪的答案。为了避免这种情况,你可以使用%f。main()函数是程序运行时首先执行的函数。语法非常简单——声明变量类型,然后使用它们。

C++是什么?

C++基于面向对象编程原理,如抽象、多态、继承和封装。可以将C++看作是在C的基础上引入了类和对象的扩展。

将数据存储在对象中为程序提供了一个整洁的结构。例如,如果你想存储一个学生的详细信息,你可以创建一个Student类,在该类下创建类似姓名、年龄、爱好、成绩等的属性。每当需要时,你可以创建一个真实的学生对象!

class Student {
public:
char name[20];
int age;
float marks;
};

//这将创建一个对象
Student student1 = new Student();

实际上,对象将在运行时创建并分配内存。

C++提供了高性能,因此即使今天,它仍然是开发高性能游戏引擎、嵌入式系统、浏览器、编译器和基于图形的应用程序(如image processing)的首选。

一些数据库(如MongoDB)是用C++编写的。与C类似,C++也具有可移植性。

让我们用C++来编写我们之前的加法程序——请注意不同的函数。

#include 
using namespace std;
int main() {
int a, b;
cout <> a >> b;
int sum = a + b;
cout << a << " + " << b << " = " << sum;
return 0;
}

请注意,我们使用的是cout和cin,而不是printf和scanf。此外,类型声明可以在程序中的任何位置进行(例如,变量sum之前)。打印语句非常简单,只需使用变量名。请注意,我们使用了iostream头文件中的std命名空间。std具有像cout、cin等方法。

C和C++之间的相似之处

可以说C是C++的一个子集。C和C++之间有许多相似之处,无论是在程序编写方式还是在它们用于的应用范围上。两者都具有强大的功能、可移植性和高性能。一些重要的相似之处包括:

编号 特点 解释
1. 语法 两者的语法相同,例如变量声明、行尾分号、命名规范等。
2. 结构化和过程化 每行代码逐行执行。程序结构如下 – 首先是导入,然后是变量声明,然后是主要代码。
3. Main()函数 所有需要执行的代码都应该在main()函数中。main()是程序执行期间的第一个函数调用。
4. 指针 C和C++都以相同的方式使用指针。指针是存储另一个变量的内存地址的变量。例如,int a = 1;。这段代码执行后,将为a分配一个内存(例如,XX0011)。使用取址符(&)可以访问“a”的内存位置,如int ptr_a = &a;。
5. 关键字和运算符 C中的所有关键字和运算符在C++中也有效。例如,范围、静态、公共、整数等。C++还有额外的运算符和关键字。
C和C++之间的相似之处

C和C++之间的区别

C++是为了克服C的一些缺点而创建的,并且是C的超集。因此,用C编写的任何程序都可以在C++中运行 – 但反之则不行!C和C++之间的主要区别在于C++是基于面向对象编程(OOP)的原则。此外,C++对类型检查更加重视。还有几个更微妙的区别,如下所列:

C C++
于1969-1973年间由AT&T贝尔实验室的Dennis Ritchie开发 于1979年由Bjarne Stroustrup开发
不遵循面向对象编程原则 基于封装、多态和继承等面向对象编程概念
C包含32个关键字,如char、switch、int、static、union等 C的所有关键字在C++中都有效,并且还有31个附加关键字
仅支持过程化编程 C++支持多种编程范式,如OOP、泛型和函数式编程
无法在C中实现OOP的特性 C++中的友元、虚函数等特性增强了OOP的本质
C支持内置数据类型 C++通过类的概念支持内置和用户定义的数据类型
支持运算符或函数重载 C++支持运算符和函数重载(多态)
使用malloc()和calloc()函数进行内存分配,使用free()进行内存释放 使用new运算符进行内存分配,使用delete运算符进行内存释放
C不支持异常处理 支持异常处理
更注重过程或方法,而非数据 更注重数据
C和C++之间的区别

C++中还存在一些其他重要特性:

  • 使用namespace关键字,可以在不同的命名空间中创建相同名称的变量。
  • 我们可以在结构体中使用函数。结构体还可以有访问修饰符。
  • 支持引用变量。

何时使用C或C++

这是程序员之间非常常见的争论 – 我为什么要学习C,当我可以在C++中做任何事情?

学习C语言将为您提供关于数据结构、指针、关键字、栈、堆和内存分配等方面的坚实基础。

除此之外,C语言仍广泛用于高性能应用,因为C编译器比C++编译器更快。所以,如果您想编写不需要对象和类、虚函数或模板的大量代码,那么选择C语言吧,因为C++可能会因为其广泛的库而过于臃肿。

大多数低级编程,如内核、操作系统和数据库,仍然使用C语言进行维护,因此了解C语言也将帮助您更快地学习C++。

C++被认为是最快和最高效的语言之一,这也是为什么它仍然是最受欢迎的编程语言之一,特别是对于游戏引擎、IoT devices和桌面应用等高性能应用程序。许多应用程序使用C和C++代码的组合,以实现最佳性能和面向对象编程的优势。

摘要

在本文中,我们通过一个简单的示例程序学习了C和C++的基础知识。我们讨论了两种语言的主要区别和相似之处,以及何时使用每种语言。

如果您刚开始学习软件开发,从C语言开始将给您带来信心,因为它易于学习并涵盖了所有的编程概念,如数据结构、指针、内存等等。

您可能有兴趣使用Geekflare的在线链接3和链接4。

类似文章