您好!欢迎来到爱源码

爱源码

热门搜索: 抖音快手短视频下载   

C和C++有什么区别?8点用通俗易懂的方式告诉你。 <互站网>

  • 时间:2022-10-25 23:42 编辑: 来源: 阅读:317
  • 扫一扫,手机访问
摘要:C和C++有什么区别?8点用通俗易懂的方式告诉你。 <互站网>
有些初学者分不清,我就详细解释一下C语言和C++的区别。 帮助大家尽快理解。 1.关键字用蓝色标记为C语言关键字。C++继承了C语言的所有关键字,下面红色的是C++包含但C语言没有的关键字(按照c++98,c++包含63个关键字)。2.源文件差异C语言文件后缀是。C和c++引用名的后缀是。cpp。如果在创建源文件的时候没有给任何东西,默认是. cpp3 .返回值和C语言中的不一样。如果函数没有指定返回值类型,则默认为int类型,返回一个随机数,通常是0xcccccc。在C++中,如果函数没有返回值,必须指定为void类型,否则编译会失败。4.参数列表在C语言中,当一个函数没有指定的参数列表时,默认可以接收任意数量的参数。在C++中,有严格的参数类型检测,没有参数列表默认值的函数是无效的,不会接收任何参数。 缺省参数缺省参数是在声明和定义时为函数的参数指定的缺省值。 调用该函数时,如果没有指定参数,则采用默认值,否则使用指定的参数。 代码如下:# include < iostream >;使用命名空间stdvoid test(int a = 1){ cout & lt;& lta & lt& ltendl} int main(){ test();测试(10);//输出结果为1返回0;//函数输出结果为10}默认参数分为两类,一类是全默认,一类是半默认。 首先,所有默认参数。所有参数都有默认值。如果没有手动传递参数,编译器将使用默认参数列表中的参数。 但这里值得注意的是,如果传递参数时只传递了部分参数,那么值将从左到右进行匹配。 示例:# include < iostream >使用命名空间stdvoid test(int a = 1,int b = 2,int c = 3){ cout & lt;& lta & lt& lt" " " & lt& ltb & lt& lt" " " & lt& ltc & lt& ltendl} int main(){ test();//1 2 3 test(10);//10 2 3test(10,20);//10 20 3test(10,20,30);//10 20 30 return 0;}C/C++半默认参数代码演示:void test (int a,int b = 2,int C = 3){ cout < & lt;a & lt& lt" " " & lt& ltb & lt& lt" " " & lt& ltc & lt& ltendl}void test1(int a,int b,int c = 3){ cout & lt;& lta & lt& lt" " " & lt& ltb & lt& lt" " " & lt& ltc & lt& ltendl}如果test函数至少传递一个参数,test1函数至少传递两个参数,则该函数可以正常运行。 注意:带有默认值的参数必须放在参数列表的末尾。 因为参数是从右向左传递的 默认参数不能同时出现在函数声明和定义中,只能留一个。 默认值必须是常量或全局变量。 c语言不支持默认值。 5.C++支持函数重载,C语言不支持。有时候我们需要实现几个功能相近的函数,只是有些细节不一样。 例如,我们想交换两个变量的值。这两个变量有很多类型,比如int,float,char,bool等。我们需要通过参数将变量的地址传递给函数。 在C语言中,程序员经常需要设计三个名字不同的函数,它们的函数原型类似于以下几种:void swap1(int *a,int * b);//交换int变量void swap2的值(float *a,float * b);//交换浮点变量void swap3(char *a,char *b)的值;//交换char变量void swap4(bool *a,bool *b)的值;//交换bool变量的值,但在C++中,这完全没有必要 C++允许多个函数同名,只要它们的参数列表不同,这就是函数重载。 在重载的帮助下,函数名可以有多种用途。 关于如何快速学习C/C++可以添加边肖的C/C++学习企鹅群:【870+963+251】不管你是小白还是大牛,我欢迎边肖,不时参考干货,欢迎初学者和高级朋友。 每晚20:00会有直播给大家展示C/C++游戏编程的学习知识和路线方法。集团会不定期升级最新的教程和学习方法。最后,祝所有程序员都能登上人生巅峰,让代码调用梦想可能到来的C/C++参数表参数签名,包括参数的类型、个数、顺序。只有一个区别叫做参数表区别。 # include & ltiostream & gt使用命名空间std//交换int变量void swap (int * a,int * b) {int temp = * a的值;* a = * b;*b =温度;}//交换float变量Voidswap (float * a,float * b){ float temp = * a;* a = * b;*b =温度;}//交换char变量void swap (char * a,char * b) {char temp = * a的值;* a = * b;*b =温度;}//交换bool变量Voidswap (bool * a,bool * b) {Chartemp = * a的值;* a = * b;*b =温度;}int main(){//交换int变量的值int n1 = 100,n2 = 200互换(ampn1和ampN2);cout & lt& ltn1 & lt& lt“,”& lt& ltn2 & lt& ltendl//交换float变量的值,float f1 = 12.5,f2 = 56.93互换(ampf1和ampF2);cout & lt& ltf1 & lt& lt“,”& lt& ltf2 & lt& ltendl//交换char变量char c1 = 'A ',c2 = 'B '的值;互换(ampc1和ampC2);cout & lt& ltc1 & lt& lt“,”& lt& ltc2 & lt& ltendl//交换bool变量的值bool b1 = false,b2 = true互换(ampb1和ampB2);cout & lt& ltb1 & lt& lt“,”& lt& ltb2 & lt& ltendl返回0;}运行结果:200,10056.93,12.5B,A1,0重载是指一个作用域内存在多个同名但参数不同的函数(同一个类,同一个命名空间等。) 重载的结果是一个函数名有多种用途,这使得命名更加方便(在中大型项目中,命名变量、函数和类是一个令人苦恼的问题),调用更加灵活。 使用重载函数时,同名函数的函数应该相同或相似。不要用同一个函数名实现完全不相关的函数。程序虽然可以运行,但是不可读,让人觉得莫名其妙。 请注意,不同的参数列表包括不同数量、类型或顺序的参数,但仅不允许不同的参数名称。 函数的返回值不能作为重载的基础。 重载函数的规则:函数名必须相同。 函数的返回类型可以相同,也可以不同。 仅仅因为返回类型不同不足以重载函数。 在C/C++6,指针和引用C语言中,传递参数给函数有两种方式:传递值和传递地址。在函数调用的过程中,会产生一个临时变量,用一个形参代替,最后把实参的值传递给新赋的临时形参。 它的优点是可以避免函数调用的反应,但不能改变参数的值。 如果你想改变一个参数的值,你只能通过一个指针来传递它。 指针可以处理问题,但是不安全,所以在C++中引入了引用 Reference: Reference不是新定义的变量,它是原变量的别名。编译器不会为被引用的变量腾出空间,但它与被引用的变量共享相同的内存空间。 类型变量(对象名)=引用变量int & amp num1 = num0引文特征;1.必须初始化引用定义。2.一个变量可以有多个引用。3.一旦一个引用被绑定到一个实体,它就不能被改变为其他变量的引用。//引用和被引用的区别不能为空,但是指针可以为空。参照物不能变,对一个对象是“至死不渝”。但是指针可以改变它的指向,对其他对象的引用的大小就是被指向变量的大小,因为引用只是一个别名;是指针本身的大小,4个字节 7.命名空间中,有很多变量、函数和类。这些变量、函数和类的名字都将存在于全局命名空间中,这将导致许多冲突。使用名称空间的目的是将标识符的名称本地化,以避免命名冲突或名称污染。命名空间关键字的出现就是为了处理这个问题。 但不是在C语言中。 8.输入输出cout表示c++的输出流,cin表示c++的输入流。它们都是在头文件“iostream”中定义的 Cout“必须匹配”< & lt“一起使用,”< & lt“扮演插入的角色。 您可以使用“< <输出多个数据 例如cout


  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【技术支持|常见问题】1556原创ng8文章搜索页面不齐(2024-05-01 14:43)
【技术支持|常见问题】1502企业站群-多域名跳转-多模板切换(2024-04-09 12:19)
【技术支持|常见问题】1126完美滑屏版视频只能显示10个(2024-03-29 13:37)
【技术支持|常见问题】响应式自适应代码(2024-03-24 14:23)
【技术支持|常见问题】1126完美滑屏版百度未授权使用地图api怎么办(2024-03-15 07:21)
【技术支持|常见问题】如何集成阿里通信短信接口(2024-02-19 21:48)
【技术支持|常见问题】算命网微信支付宝产品名称年份在哪修改?风水姻缘合婚配对_公司起名占卜八字算命算财运查吉凶源码(2024-01-07 12:27)
【域名/主机/服务器|】帝国CMS安装(2023-08-20 11:31)
【技术支持|常见问题】通过HTTPs测试Mozilla DNS {免费源码}(2022-11-04 10:37)
【技术支持|常见问题】别告诉我你没看过邰方这两则有思想的创意广告! (2022-11-04 10:37)

联系我们
Q Q:375457086
Q Q:526665408
电话:0755-84666665
微信:15999668636
联系客服
企业客服1 企业客服2 联系客服
86-755-84666665
手机版
手机版
扫一扫进手机版
返回顶部