目录
前言
C语言的基础语法,数据结构都已经学习过的基础上,学习一门新的语言:C++。
我们知道C++是在C语言的基础上发展而来,那么有没有必要再去学习C++?C++这种语言为什么会存在?带来了哪些便利之处?
答案是显而易见的,一个东西之所以能够长久存在,那么它就一定有它存在的道理。以下就是我对两种语言的优缺点的一些分析。
一、C语言是什么?
- C语言的本质就是对内存的操作。
- C语言是一门面向过程的计算机编程语言
- 面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用最终实现想要的结果。
二、C++是什么?
-
C++与C并非取代关系,而是一种拓展关系,C++是C的超集。
-
C++是一门面向对象的一种语言。
-
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的属性,行为。
三、C++和C语言的异同有什么?
1.编译器不同
C语言使用gcc编译器进行编译。
C++使用g++编译器进行编译,g++向上兼容可以编译C程序。g++编译器对类型的检查比gcc要更加的严格。
2.结构体定义方式不同
C语言中定义结构体:用来存放不同类型的数据
struct Stu
{
char* name;
int age;
Pfunc f;
};
以后每次要使用结构体时都需要struct Stu+变量名设置好变量以后才可以使用。
C++中的结构体不再叫结构体而是叫“类”。关键字也有struct改成了class.
class Stu
{
public:
string name;
int age;
void write_code()
{
cout << "正在努力的写代码" << endl;
}
};
C++结构体中包含权限(private://私有的 public://公有的 protected://受保护)、属性(成员)、行为(函数功能)。
总结:
1.不论是类还是结构体都有内存对齐。
2.C中结构体是没有封装性,C中结构体中是不可以直接定义函数,只能通过函数指针的方式进行回调。
3.C++中结构体是有封装性,默认访问权限是公有的。
4.同是地C++中定义类的关键字class也是由struct衍生而来,只不过class访问权限默认为private私有的。而struct默认的是公有的public.
5.C++struct结构体在定义对象时无需再struct关键再修饰一次了。
6.C++中struct结构中的函数,就叫成员函数。非静态成员函数可以直接调用结构中的变量,非静态成员函数行参列表中有一个隐藏的this指针,所以可以调用类中的成员属性。
3.字符串类型不同
C语言中,字符类型的关键字是char,想要字符串就只能定义一个数组或一个字符指针存放字符串。且时常需要考虑结束符\0,字符长度越界,内存浪费等问题。
C++中,string比C中的字符的两种表示形式:字符指针或字符数组更加灵活。string修饰的字符串变量不再需要考虑结束符\0,字符长度越界,内存浪费等问题。
总结
以上就是今天要讲的内容,本文仅仅简单C++和C语言的一些不同点,并不是特别全面,仅作为个人的一个记录。后续会继续写的。