C语言和C++在语法上有那些区别?要详细具体一点!!!

高手,打扰一下,C语言和C++在语法上有那些区别?要详细具体一点!!!
最新回答
寄信给风

2024-05-30 09:33:44

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,不接收任何参数。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++中引入了引用。7、命名空间在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局命名空间中,会导致很多冲突,使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或者名字污染,namespace关键字的出现就是解决这种问题。而C语言中没有。
8、输入与输出
cout代表c++的输出流。
cin代表c++的输入流。
它们都是在头文件“iostream”中定义。
“cout”必须与”<<”一起使用,“<<”起到插入的作用。
在一条语句中可以多次使用“<<”输出多个数据。
盏茶作酒

2024-05-30 02:29:18

/*总得语法上C++更加灵活,随便想到了几个写出来*/

struct T{
int a,b;
};

do_some_thing(int &i) //C++专有的引用类型,函数中对i的操作将影响原变量。
{.....}

main() //这样注释 C语言不允许的
{ int i=0,*p;
struct T *pT;//C++可以没有struct,还可以T* pT
do_some_thing(i);
for(int k=0;k*100>i*i;i=k++); //仅C++可以中途定义变量
p=new T;//C中malloc(sizeof(T))
p=pT;//C可以,C++要改成p=(int*)pT,这个比较关键

}

另外还有重载,类等等C语言里没有的,不再赘述。

以上所谓C语言都是89版ISO/ANSI C,C++是在这个版本上开发的,所以C89是C++的子集。后来C又有了所谓99版的C99,支持了单行注释,还加了几个C++都没有的关键字,开始与C++分道扬镳了。
辣条的发明妨碍我当淑女

2024-05-30 18:25:00

c不支持类等面向对象的特性,C++支持,而且包容C
五品带砖侍卫

2024-05-30 15:10:07

简单说
c面向过程,c++面向对象
c++在c的基础上做了很大扩展,增加了类,支持函数重载,模板等新特性
c++通过类对过程实现了封装
写不尽的思念

2024-05-30 03:28:29

这个多了。。。建议你看书去。。。