关于c语言的了解

ok呀,有人给我点赞了!✌,可是没过10个赞呜呜。今天来讲一下C语言

首先c语言和c++语言不一样!(一定要记住!!!)

C语言和C++是两种常见的编程语言,它们有很多共同点,但也有很多区别。以下是它们的主要区别:

编译器:C语言和C++语言都有自己的编译器,但C++是C语言的超集,所以C++编译器可以编译C语言代码,而C编译器不能编译C++代码。

面向对象编程:C++是一种面向对象的编程语言,而C语言不支持面向对象编程,他是面向过程编程。

类型检查:C++有更严格的类型检查机制,能够更好地避免类型错误,而C语言则相对较宽松。

1、 C语言类型检查:

C语言的类型检查比较宽松,通常只检查变量的类型是否与函数声明或定义中的类型匹配。如果类型不匹配,则编译器会发出警告或错误信息,但仍然可以编译通过。例如,如果一个函数声明为int类型,但传入的参数是float类型,则会发出警告。

2、 C++类型检查:

C++的类型检查比较严格,主要分为静态类型检查和动态类型检查两种。静态类型检查是指在编译期间进行的类型检查,即编译器会检查变量的类型是否与函数声明或定义中的类型匹配,并在发现类型不匹配时发出错误信息,导致编译失败

动态类型检查是指在程序运行期间进行的类型检查,即编译器会生成代码来检查对象的类型,并在对象类型不匹配时抛出异常。例如,如果一个对象的类型是Animal类,但却调用了它没有实现的Bird类方法,则会抛出异常。

函数重载:C++支持函数重载,即可以有相同函数名但参数不同的函数,而C语言不支持。

异常处理:C++支持异常处理机制,可以在程序出现异常时进行相应的处理,而C语言则没有这个功能。

异常处理是一种用于处理程序在运行过程中出现的错误和异常情况的机制。在C++中,可以使用try-catch块来捕获并处理异常。当程序执行到可能会出现异常的代码块时,可以将该代码块放在try块中。如果在try块中发生了异常,程序就会跳转到与之匹配的catch块中,catch块中的代码会处理异常并进行相应的操作,比如输出错误信息、恢复程序状态等。如果在try块中没有发生异常,则跳过catch块,继续执行后面的代码。

并且有人私信我说c语言和c++语言在DEVC++上面都能执行呀?为什么不同?

DEVC++是C语言和c++语言可以写的。for example:

c语言保留小数:printf("2lf",......);

c++语言保留小数: cout<<fixed<<setprecision(...//保留几位);

也是截然不同的!

但是你可以c语言和c++语言一起学,但不能把他们混起来。

c语言和c++语言是截然不同的。

计算机专业学生或者没有以编程为职业打算的人,不需要学习编程语言,非要学习可以试试Python,面向应用的高级库多,学了对大部分人都有点用;语法简洁,容易上手。

C++则应当成为计算机相关专业初学者的第一门编程语言、至少也应该是其中之一,C排在C++之后,理由:

1:C++的内存管理相对于C,对于初学者来说有非常重要的改进。C++相对于现代不少有所谓垃圾回收特性的语言,的确比较简陋,但是其自带的类的构造和析构只需要学一点点就可以给初学者级别的程序提供足够的内存管理支持。

2:编程泛型多,学一C++个就相当于获得了:C风格的命令过程语言 + 基于类的面向对象语言 + C++11标准后的简陋的函数式语言,一举三得。值得一提的是,每一个新风格的叠加都是在现有系统的基础上实现(比如设计C的时候根本不会想到还会扩展为C++,而C++必须高度兼容C),这是一个非常有挑战的工作,C++之父Bjarne Stroustrup的《The Design and Evolution of C++》就描述了部分C++语言设计的过程,非常有价值。

3:基础库屏蔽了大量初学者容易出错的细节,以STL的string为例,这个库虽然简单,但是居然在C之上搭建的C++中实现了和许多现代的很高级的语言使用字符串一样的体验。换做是C,很多初学者就不太容易搞明白strcat, strcmp, strcpy等等那套几乎针对内存操作的字符串处理机制是怎么回事,再结合例如缓冲区溢出预防,正确分配和释放内存等等问题,学习曲线会很陡。

4:编程语言特性多不代表你必须学完全部特性才能开始应用。C++那么多特性怕是不少C++的实现者都不能说自己完全“精通”,对于初学者来说,学会对初学者最友善的,最简单的那部分(STL,基本的类)已经能帮助解决很多问题甚至开始写一些小型软件了。

5:不过分脱离底层,计算机专业得用更加接近所谓“底层”的语言,“底层”值的是了解我们这个世界最流行的机器架构中,数据是怎么在内存中流动的,高级语言写出的一些语句实际在机器中执行大概要经历什么过程,以维基百科里快速排序词条里的某所谓高级语言写出的快速排序为例:

  sort []           = []
  sort (pivot:rest) = sort [y | y <- rest, y < pivot]
                      ++ [pivot] ++ 
                      sort [y | y <- rest, y >=pivot]

从代码字面看来,算法的思想的确描述得很简单,但是如果直接给初学者看这段代码,初学者如何想象它为什么叫“快速排序”?这一条实际上跟第三条略微有点矛盾,不过参考第四条,初学者可以在学习的不同阶段自由选择已经掌握的特性。

综上所述,C++是计算机专业初学者的第一门编程语言的最佳选择。

欧克呀,这个文章也就结束了,喜欢的点个赞,球球了。有什么问题可以私信我。拜拜ヾ(•ω•`)o

  • 21
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值