C语言和C++的区别到底有多少?不要再傻傻分不清楚了

1、关键字

蓝色标注为C语言关键字,C++继承了C语言的所有关键字,以下红色标注为C++中含有但C语言没有的关键字(根据c++98中提出C++包含63个关键字)

2、源文件区别

C语言文件后缀为.c,c++原文件名后缀为.cpp

如果在创建源文件时什么都不给,默认是.cpp

3.返回值不同

C语言中,如果一个函数没有指定返回值类型,默认为int类型,并返回一个随机数,一般为0XCCCCCCCC

在C++中,如果函数没有返回值则必须指定为void型,否则编译不能通过 、

4、参数列表

在C语言中,函数没有指定的参数列表时,默认可接收任意多个参数

在C++中,有严格的参数类型检测,没有参数列表的函数,默认为void,不接收任何参数。

注意:

带缺省值的参数必须放在参数列表的最后面。因为传参是从右向左的。

缺省参数不能同时在函数声明和定义中出现,只能二者留其一。

缺省值必须是常量或者全局变量。

C语言并不支持缺省。

5、C++支持函数重载,C语言不支持

在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。

例如希望交换两个变量的值,这两个变量有多种类型,可以是 int、float、char、bool 等,我们需要通过参数把变量的地址传入函数内部。

在C语言中,程序员往往需要分别设计出三个不同名的函数,其函数原型与下面类似:

void swap1(int *a, int *b); //交换 int 变量的值

void swap2(float *a, float *b); //交换 float 变量的值

void swap3(char *a, char *b); //交换 char 变量的值

void swap4(bool *a, bool *b); //交换 bool 变量的值

但在C++中,这完全没有必要。C++ 允许多个函数拥有相同的名字,只要它们的参数列表不同就可以,这就是函数的重载(Function Overloading)。借助重载,一个函数名可以有多种用途。

6、指针和引用

C语言中函数传参方式有两种:传值和传址

以传值方式,在函数调用过程中会生成一份临时变量用形参代替,最终把实参的值传递给新分配的临时形参。

它的优点是避免了函数调用的副作用,却无法改变形参的值。如果要改变实参的值,只能通过指针传递。

指针可以解决问题,但是不安全,因此在C++中引入了引用。

引用:引用不是新定义的一个变量,他是原变量的一个别名,编译器不会为引用变量开辟空间,它和他引用的变量共用同一块内存空间。

类型& 变量(对象名)=引用变量

int &num1=num0;

引用特性;

1、引用定义时必须初始化

2、一个变量可以有多个引用

3、引用一旦绑定一个实体就不能改变为其他变量的引用

//指针和引用的区别

引用不可以为空,但指针可以为空

引用不可以改变指向,对一个对象”至死不渝”;但是指针可以改变指向,而指向其它对象

引用的大小是所指向的变量的大小,因为引用只是一个别名而已;指针是指针本身的大小,4个字节。

7、命名空间

在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局命名空间中,会导致很多冲突,使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或者名字污染,namespace关键字的出现就是解决这种问题。而C语言中没有。

8、输入与输出

cout代表c++的输出流

cin代表c++的输入流

它们都是在头文件“iostream”中定义。

“cout”必须与”<<”一起使用,“<<”起到插入的作用。

在一条语句中可以多次使用“<<”输出多个数据。

如:cout<

#include <iostream>

using namespace std;

int main()

{

int a,b;

cout<<"请输入a,b的值"<<endl;

cin>>a>>b;

cout<<"输出a的值"<<a<<"输出b的值"<<b<<endl;

return 0;

}

学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习C/C++或者为了入行、转行学习C/C++的伙伴可以私信回复小编“学习”领取全套免费C/C++学习资料、视频

部分教程截图

教程内容包括

1.开发环境搭建

2.C语言教程

3.C++教程

4.数据结构与算法

5..Net全套教程

6.C++Primer教程

7.项目实操

c和c++可以说现在都是比较流行的,但是两者到底有什么联系和区别吗,这是学习c和c++最需要注意的,不要把两者搞混了,我们先开始就来看一下c和c++有什么联系,这两者可以这样说:C++是C的超集,兼容大部分C的语法的结构,其实任何语言之间都没有明显的界限,C语言是基础; 所以c++是比c更高级一些吧,他们都是编程语言。但是他们的用法很多都是有不一样的,来听一一道来:

首先不同之处一:他们的应用场合是不一样的

C语言:C语言是结构化和模块化的语言,是面向过程的。当程序的规模较小时,C语言运用起来得心应手。但是当问题比较复杂、程序的规模比较大的时候,C语言就会展现出它的局限性。

C++:正是因为有大规模的程序需要去处理,C++就应运而生了。C++是由C发展而来的,与C语言兼容。C++既可用于面向过程的结构化程序设计,也可用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。

接下来不同之处二:语法的不同

1、输入/输出函数

C语言:用一个例子说明一下:

int a=1;

double d=3.1415926;

printf("%d\n",a);

printf("a=%d\n",a);

printf("b=%6.3f, b=%6.2f, b=%.3f\n",b,b,b);

scanf("%d",&a);//取地址,输入a的值

%d和%f称为格式说明符,表示以此格式输出对应表达式的值,\n表示换行。%6.3f 中的6表示占六列,.3 表示输出对应浮点表达式值时只输出三位小数。

C++:也是用一个例子说明:

int a=5;

float b;

cout << "a="<

cin >>b;

cout必须要和”<<“一起使用,cin必须要和”>>“一起使用。我觉得C++中的输入输出流是很强大的,它不像C里面还要指定格式。endl表示换行。

2、字符串

另外一个我觉得C++里面另外一个特别好用的用来存放字符串的就是string,它是在C++标准库中声明的一个字符串类。

C语言:char a[20]="hangzhou";

char *p="hangzhou";

C++: string s1="abcd";

string s2="hello world";

string s3=s1+s2;

s1=s2;

c++比c更方便许多。

3、头文件

C语言中所有的头文件都带后缀 .h(比如stdio.h)

C++中有系统提供的头文件不带后缀 .h,用户自己编制的头文件可以有后缀 .h。

4、结构体和类

C语言:结构体

struct Student //声明了一个名为Student的结构体类型

{ int num;

char name[20];

char sex;

} ;

Student stud1,stud2; //定义了两个结构体变量 ,默认情况下为public类型。

C++:类

class Student

{ private:

int num;

char name[20];

char sex;

public:

void display()

{ cout<<"num="<

cout<<"name="<

cout<<"sex="<

};

Student stud1,stud2;//定义了两个Student类的对象

C++中的类将数据和操作封装在一起,并且指定了访问权限。如果不指定public,也不指定private,则系统就默认为私有的,这一点和C语言中的结构体是不一样的。

其实总的来说,C语言和c++,他们除了表现在使用场合不同,还有更多的是语法的不同,C语言更加注重过程,c++比C语言更高一级,对c和c++应该有大致的了解了吧。

本站部分文章资源来源于互联网,仅供学习交流,如若要商用,请购买正版!
若不听劝告,网友造成出现一切后果,与本站本人无关
本站有些资源未经测试,请注意网络安全,本站不对下载的资源造成的后果负责
免责声明
作者:昼白
转载请注明来源:https://www.zhoubaiwl.club/1696.htm
THE END
分享
二维码
打赏
< <上一篇
下一篇>>