C语言和C+的区别是什么?8个点通俗易懂的告诉你
有些初学的同学傻傻分不清其中的区别,下面我将详细的讲解C语言和C++的区别点帮助大家尽快的理解。(但是呢,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,不接收任何参数。
缺省参数
缺省参数是声明和定义时函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用默认值,否则使用指定的实参。
如下代码:
#include
using namespace std;
void test(int a = 1)
{
cout
}
int main()
{
test();
test(10);//输出的结果是1
return 0;//函数输出结果是10
}
而缺省参数是分为两类的,一类是全缺省,一类是半缺省。
首先是全缺省,全缺省参数所有参数都有默认值,如果没有手动传参,那么编译器会使用默认参数列表中的参数。但是这里值得注意的是,如果传参的时候只传了部分参数,那么该值会被从左至右匹配。“我是一名从事了10年开发的老程序员,最近我花了一些时间整理关于C语言、C++,自己有做的材料的整合,一个完整的学习C语言、C++的路线,学习材料和工具。全球最大的C/C++、编程爱好者的聚集地就在我这里<C语言C++编程学习>!欢迎初学和进阶中的小伙伴。希望你也能凭自己的努力,成为下一个优秀的程序员。
代码示例:
#include
using namespace std;
void test(int a = 1,int b = 2, int c = 3)
{
cout
}
int main()
{
test();//1 2 3
test(10);//10 2 3
test(10, 20);//10 20 3
test(10, 20, 30);//10 20 30
return 0;
}
C/C++
半缺省参数代码演示:
void test(int a ,int b = 2, int c = 3)
{
cout
}
void test1(int a, int b, int c = 3)
{
cout
}
其中test函数至少传一个参数,test1函数至少传两个参数,函数才可以正常运行。
注意:
带缺省值的参数必须放在参数列表的最后面。因为传参是从右向左的。
缺省参数不能同时在函数声明和定义中出现,只能二者留其一。
缺省值必须是常量或者全局变量。
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)。借助重载,一个函数名可以有多种用途。
need-to-insert-img
每天晚上20:00都会开直播给大家分享C/C++游戏编程学习知识和路线方法,群里会不定期更新最新的教程和学习方法,最后祝所有程序员都能够走上人生巅峰,让代码将梦想照进现实
C/C++
参数列表又叫参数签名,包括参数的类型、参数的个数和参数的顺序,只要有一个不同就叫做参数列表不同。
#include
using namespace std;
//交换 int 变量的值
void Swap(int *a, int *b){
int temp = *a;
*a = *b;
*b = temp;
}
//交换 float 变量的值
void Swap(float *a, float *b){
float temp = *a;
*a = *b;
*b = temp;
}
//交换 char 变量的值
void Swap(char *a, char *b){
char temp = *a;
*a = *b;
*b = temp;
}
//交换 bool 变量的值
void Swap(bool *a, bool *b){
char temp = *a;
*a = *b;
*b = temp;
}
int main(){
//交换 int 变量的值
int n1 = 100, n2 = 200;
Swap(&n1, &n2);
cout
//交换 float 变量的值
float f1 = 12.5, f2 = 56.93;
Swap(&f1, &f2);
cout
//交换 char 变量的值
char c1 = 'A', c2 = 'B';
Swap(&c1, &c2);
cout
//交换 bool 变量的值
bool b1 = false, b2 = true;
Swap(&b1, &b2);
cout
return 0;
}
运行结果:
200, 100
56.93, 12.5
B, A
1, 0
重载就是在一个作用范围内(同一个类、同一个命名空间等)有多个名称相同但参数不同的函数。重载的结果是让一个函数名拥有了多种用途,使得命名更加方便(在中大型项目中,给变量、函数、类起名字是一件让人苦恼的问题),调用更加灵活。
在使用重载函数时,同名函数的功能应当相同或相近,不要用同一函数名去实现完全不相干的功能,虽然程序也能运行,但可读性不好,使人觉得莫名其妙。
注意,参数列表不同包括参数的个数不同、类型不同或顺序不同,仅仅参数名称不同是不可以的。函数返回值也不能作为重载的依据。
函数的重载的规则:
函数名称必须相同。
函数的返回类型可以相同也可以不相同。
仅仅返回类型不同不足以成为函数的重载。
need-to-insert-img
C/C++
6、指针和引用
C语言中函数传参方式有两种:传值和传址
以传值方式,在函数调用过程中会生成一份临时变量用形参代替,最终把实参的值传递给新分配的临时形参。
它的优点是避免了函数调用的副作用,却无法改变形参的值。如果要改变实参的值,只能通过指针传递。
指针可以解决问题,但是不安全,因此在C++中引入了引用。
引用:引用不是新定义的一个变量,他是原变量的一个别名,编译器不会为引用变量开辟空间,它和他引用的变量共用同一块内存空间。
类型& 变量(对象名)=引用变量
int &num1=num0;
引用特性;
1、引用定义时必须初始化
2、一个变量可以有多个引用
3、引用一旦绑定一个实体就不能改变为其他变量的引用
//指针和引用的区别
引用不可以为空,但指针可以为空
引用不可以改变指向,对一个对象”至死不渝”;但是指针可以改变指向,而指向其它对象
引用的大小是所指向的变量的大小,因为引用只是一个别名而已;指针是指针本身的大小,4个字节。
如果大家对C/C++感兴趣的话,可以加一下我们的学习交流Q群:637 935 295,免费领取一套学习资料和视频课程哟~
7、命名空间
在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局命名空间中,会导致很多冲突,使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或者名字污染,namespace关键字的出现就是解决这种问题。而C语言中没有。
8、输入与输出
cout代表c++的输出流
cin代表c++的输入流
它们都是在头文件“iostream”中定义。
“cout”必须与”
在一条语句中可以多次使用“
如:cout
#include
using namespace std;
int main()
{
int a,b;
cout
cin>>a>>b;
cout
return 0;
}
C语言和C+的区别是什么?8个点通俗易懂的告诉你相关推荐
- c语言python是什么意思_c语言和python的区别是什么
c语言和python的区别是什么 发布时间:2020-09-10 10:17:30 来源:亿速云 阅读:84 作者:小新 这篇文章将为大家详细讲解有关c语言和python的区别是什么,小编觉得挺实用的 ...
- c语言和python不同_c语言和python的区别是什么?
原标题:c语言和python的区别是什么? python和C语言的区别如下: 1.C语言是编译语言,Python是脚本语言.说是C语言会比Python快 (看了看学校oj最简单的A+B问题,C语言的运 ...
- go语言和python的区别_go语言和python的区别是什么?
什么是Python? Python是一种功能强大的高级编程语言,主要用于科学和工程计算.它是一种高效的语言,优雅务实,简单而强大,适合新手和专业人士的编程. Python支持多种编程范例,并提出了一个 ...
- c与python的区别-c语言和python的区别是什么
python和C语言的区别如下: 1.C语言是编译语言,Python是脚本语言.说是C语言会比Python快 (看了看学校oj最简单的A+B问题,C语言的运行事件大致在0ms,而Python是6.7. ...
- python和c语言的区别-c语言和python的区别是什么
python和C语言的区别如下: 1.C语言是编译语言,Python是脚本语言.说是C语言会比Python快 (看了看学校oj最简单的A+B问题,C语言的运行事件大致在0ms,而Python是6.7. ...
- C语言和C++的区别是什么?到底学哪种好
C++是在C的基础上增加新特性,玩出了新花样,所以叫"C Plus Plus",就像 iPhone 7 和 iPhone 6.Win10 和 Win7 的关系. C语言是1972年 ...
- c+和python的区别-c语言和python之间有什么区别
c语言和python的区别是:1.Python是一种面向对象的解释型语言,通过缩进来表示语句体,在Python中每一条语句结尾后没有分号:2.C是一种面向过程的编译型语言,通过"{}&quo ...
- C语言和C++的区别到底是什么?
C语言和C++的区别是一个老生常谈的问题了,今天笔者就给大家合理的分析一下其中的区别. 1.出现时间不同 C++是C的超集,也可以说C是C++的子集,因为C先出现.按常理说,C++编译器能够编译任何C ...
- python与c语言的区别-c语言和python之间有什么区别
c语言和python的区别是:1.Python是一种面向对象的解释型语言,通过缩进来表示语句体,在Python中每一条语句结尾后没有分号:2.C是一种面向过程的编译型语言,通过"{}&quo ...
- python与c语言在语法上的区别-c语言和python之间有什么区别
c语言和python的区别是:1.Python是一种面向对象的解释型语言,通过缩进来表示语句体,在Python中每一条语句结尾后没有分号:2.C是一种面向过程的编译型语言,通过"{}&quo ...
最新文章
- [RabbitMQ]RabbitMQ深入理解(一)进阶/管理/配置
- asp.net程序调用NTFS分区下Oracle客户端
- Python实现递归算法
- 【转】(六)unity4.6Ugui中文教程文档-------概要-UGUI Animation Integration
- OpenCV3 Java 机器学习使用方法汇总
- string数组批量转换成Int数组
- solr analyzer_查看您的Solr缓存大小:Eclipse Memory Analyzer
- 通信与计算机技术的联系,通信技术与计算机技术融合发展论文
- python ctime函数_Python time 模块
- api 微信内置浏览器js_微信小程序和HTML的区别
- mysql查询表字段默认值
- Extjs Ext.net中的常用属性
- WINDOWS下,找包含特殊字串的文件的解决办法
- 计算机数字媒体学什么以后,数字媒体设计是学什么的?以后的发展方向是什么?...
- 软件开发需求整理概要
- ASUS RT-N16 刷番茄Tomato
- 性能测试入门,其实很简单,看看这篇,好好学习
- Unity实现Angry Bird弹弓发射功能
- 2022杭电多校4 G - Climb Stairs
- 中国版权保护中心注册流程(含实名认证)