首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

C语言为什么不会过时?

01、为什么C语言不会过时 评价任何一门编程语言,都是招人骂的。永远是这样。就像是春寒料峭的季节,街上穿棉袄和穿单衣的擦肩而过,双方一定是同时在心里出现了两个字:“傻逼!”...你没有看错,这些操作系统的内核都是C,我虽然不确定C在Window中所占的比例,但是我相信微软的人不会傻到用C#去全部改写一个操作系统的内核。...所以我感觉C语言会稳定在自己核心的应用中,并开始逐步回升。 最后说点闲话,C++不会淘汰C语言。...如果程序有一个不符合Rust语法的内存管理问题,它就不会被编译。...而且现在很多流行语言的底层绝大部分的C语言构建完成。从这个层面讲C语言是永远不会过时的,顶多算是应用范围变窄,但其作用依然强大。 3.

1.5K20

为什么C语言不会过时?

作为《C语言点滴》《drop of knowledge of C++》书籍的作者,《C语言新思维,第二版》的译者。我觉得我有责任系统的介绍一下这本语言,他的特点,还有他的未来。...你没有看错,这些操作系统的内核都是C,我虽然不确定C在Window中所占的比例,但是我相信微软的人不会傻到用C#去全部改写一个操作系统的内核。...哪为什么C语言还下降这么多呢?很简单,有些任务本身就不是C语言的。我上学的时候还用C语言编过窗口界面呢?然后很快微软的人就推出了MFC,就是一大堆宏把底层的C windowAPI包装了起来。...这对C语言是好事,把自己不善长的东西去掉,让自己跑的更快! 伴随着嵌入和实时系统的兴起,AI,机器人,自动驾驶等。这些都是C语言的核心应用,而且在这种应用上面,C语言没有竞争者。...最后说点闲话,C++不会淘汰C语言。有了对象后你会发现再简朴的对象也耗费资源,而且有了对象以后,总是不由自主的去想继承这个事,一但继承实现了,你会发现继承带来的麻烦远超过你的想象。

1.1K51

为什么C语言不会过时?

作为《C语言点滴》《drop of knowledge of C++》书籍的作者,《C语言新思维,第二版》的译者。我觉得我有责任系统的介绍一下这本语言,他的特点,还有他的未来。...同时C语言对于错误的偏移量也不闻不问,这就是C语言中臭名昭著的越界问题。 C语言自诩的“相信程序员”都是漂亮的说辞,它的唯一目的就是快,要么飞速的运行,要么飞速的崩溃。...你没有看错,这些操作系统的内核都是C,我虽然不确定C在Window中所占的比例,但是我相信微软的人不会傻到用C#去全部改写一个操作系统的内核。...哪为什么C语言还下降这么多呢?很简单,有些任务本身就不是C语言的。我上学的时候还用C语言编过窗口界面呢?然后很快微软的人就推出了MFC,就是一大堆宏把底层的C windowAPI包装了起来。...最后说点闲话,C++不会淘汰C语言。有了对象后你会发现再简朴的对象也耗费资源,而且有了对象以后,总是不由自主的去想继承这个事,一但继承实现了,你会发现继承带来的麻烦远超过你的想象。

91110

为什么永远不会语言取代 C C++ ?

后来,C++ 扩展了 C 语言,保留了 C 语言的性能特点,一门具有更多开发人员特性的新的编程语言诞生了。...但这些语言仍然只是 C/ C++ 的备选品,而不是替代品,原因如下: 1 CC++ 是基础语言 如果我们追根溯源当今活跃在我们生命中的每一款计算机程序,总会发现它们诞生自 CC++。...,C/ C++ 语言也长期维持着语言语法的标准。...但是,对于学术用途来说,Go 的抽象太过简单,并且不能与传统的伪代码保持一致,所以学术讲师永远不会用 Go 来替代 C/ C++。...程序员们针对低层次编程用例设计和改进了 C 语言,没有一种现代语言是完全针对 C 语言的目标而创建的。C++ 使 C 语言更具有未来感,并自低级编程阶段进行了提升。

96620

为什么永远不会语言取代 C C++ ?

后来,C++ 扩展了 C 语言,保留了 C 语言的性能特点,一门具有更多开发人员特性的新的编程语言诞生了。...但这些语言仍然只是 C/ C++ 的备选品,而不是替代品,原因如下: 01 CC++ 是基础语言 如果我们追根溯源当今活跃在我们生命中的每一款计算机程序,总会发现它们诞生自 CC++。...,C/ C++ 语言也长期维持着语言语法的标准。...但是,对于学术用途来说,Go 的抽象太过简单,并且不能与传统的伪代码保持一致,所以学术讲师永远不会用 Go 来替代 C/ C++。...程序员们针对低层次编程用例设计和改进了 C 语言,没有一种现代语言是完全针对 C 语言的目标而创建的。C++ 使 C 语言更具有未来感,并自低级编程阶段进行了提升。

64020

我被这道c语言笔试题整不会

我那时候也就顺便给他找了一些C语言、Linux等等笔试题,后面也教他稍微修改过几次简历。 总体来说,这位同学能有现在的三个比较好的offer很大原因在于他自身的基础不错,肯付出、肯努力的结果。...前几天和我分享了他参加面试遇到的一道c语言笔试题,他说当时有点整不会了,竟然做错了,然后面试官也让他自己回去想想。因为大部分题做的还可以,最后也通过了面试。...题目是这样的: 一般而言,我们都会认为任何指针p,对其*操作的*p的意思就是对p解引用,也就是取p的目标,对于指针的知识在文章(看完还不会指针,锤自己!)...但是在c/c++中,函数指针解引用还是会当成函数指针处理,所以函数指针可以不限次数的解引用,效果和不解引用是一样的,可以换句话说:*操作对它是无效的!

23120

为什么这么多人学不会C语言

很多人觉得用C语言作为入门语言觉得太难了,里面还有指针,回调,递归之类的操作太难了。为什么这么多人觉得C语言难?笔者根据从业十几年的经验尝试着分析一下。...第一 C语言是距离硬件非常近的语言,特别是和内存关联很近,主要还是指针的存在 很多人说到指针就头大,指针就是一把双刃剑,能够很好的解决逻辑问题,但指针一旦出现问题,找个问题都很费劲,底层语言直接崩溃对应的查找工具还不多...第二 C语言工具比较少,很多功能的实现都需要自己实现 很多高级语言几句话的事情,在C语言去实现需要折腾很长时间,这是底层语言不太好的地方,这也就决定了C语言只适合在性能要求比较高的地方去使用,应用方面就不怎么适合了...第三 C语言 由于是面向过程的语言,原则上函数和模块之间可以胡乱调用,如果框架思想不强,写出来的代码就是一锅粥,非常难维护 很多初学者用C语言实现一个功能,基本上都放在一个文件或者函数里面,乱哄哄的代码搞在一起...学完之后回来总结C语言也就是十个左右的知识点,懂了也就比较轻松了,后续就是靠自己在项目中的打磨了。

93860

为什么这么多人学不会C语言

应该准确来讲,是为什么这么多人学不会编程,C语言本身来讲有一定的难度,但毕竟不是最难的语言,所以学不好的主要还是自身的问题。作为用了十几年C语言的程序员在这尝试分析下为何这么多人学不好C语言?...C语言本身存在一定难度 C语言相比现在比较流行的java,php,python等语言在入门的方面显得稍微难点,特别是里面的C语言,很多人放弃就是在学到C语言之后就可以慢慢放弃了,觉得这个东西太难了,理解起来太抽象...指针是学习C语言的一个槛,跨过去了也就一马平川了。有多少人是倒在指针上。 当然除了指针C语言里面的一些函数指针,指针函数,回调,递归都是善茬,总体来讲和一些高级语言还是存在一定的难度。...C语言没有别的语言好就业 这涉及一个很现实的问题,学习了编程语言就得找工作,如果学了不好找工作,肯定学习起来的动力就不足,毕竟C语言的工作岗位绝对数量并不少,但是相比java,php,python等语言还是没法比...C语言是不是就不值得学习了?这种说法也是不对的,现在php,python底层语言的实现都是C语言,重要性不言而喻。不要听信C语言已经过时之类的鬼话,出头露面的事情少,踏踏实实做着底层的事情。

1.7K40

C语言——if(0)之后的语句真的不会执行吗?

1、序 学过c语言的都知道,通常:If(0)之后的代码是不执行的,网上也有详细的说明。...= 0) 这肯定不成立,所以一定不会执行if中的语句. x == 1,x != 1也是表达式,称为关系表达式,在C语言里,关系成立,表达式的值为1,不成立则为0,所以1>2的值为0,1!=2的值为1。...,正是x=1这个表达式是有值的,C语言才允许if(x=1)这种写法,一些语言里x=1这个式子是没有值的,只是将x赋值为1,这样写就会报错,如Java。...C语言代码里出现if(x=1)一般情况下是你写错了,可能想表达的是if(x==1)。现在的编译器里,if(x=1)一般都会有警告提示你,可能写错了。...上面的文字应该不难理解,过了二级C语言的同学应该都能理解了。 然而。有例外,近期在微信群中看到大佬们提到了Clifford's Device,由于一个比较冷门的c语言技巧,趁此学习下。

1.3K20

教科书不会讲的C语言关键字volatile用法

第一时间看干货文章 1 许多程序员都无法正确理解C语言关键字 volatile,这并不奇怪。因为大多数C语言书籍通常都是一两句一带而过,本文将告诉你如何正确使用它。...”,很有可能你没有使用C语言关键字volatile。...不幸的是,大多数c语言书籍对volatile的藐视,只是简单地一带而过。 volatile用于声明变量时的使用的限定符。它告诉编译器该变量值可能随时发生变化,且这种变化并不是代码引起的。...C语言关键字volatile语法 声明一个变量为volatile,可以在数据类型之前或之后加上关键字volatile。下面的语句,把foo声明一个volatile的整型。...正确使用C语言关键字volatile 只要变量可能被意外的修改,就需要把该变量声明为volatile。

67320

浅谈C语言编程:不会这个知识就别想了!

小编不是什么大佬,但小编可以明确的告诉你,学习C语言是必不可少的一步,为什么?因为C语言是一个非常“底层”的语言,也是应用最广泛的编程语言。...你可以这样理解,最底层的是机器语言,紧接着的是汇编,然后就是C语言。 这是机器语言,看不懂?...我也看不懂 学习C语言的过程中,数据结构是必须要掌握的,今天小编就跟大家讲一下数据结构中的堆栈——链式堆栈。...小编不是什么大佬,但小编可以明确的告诉你,学习C语言是必不可少的一步,为什么?因为C语言是一个非常“底层”的语言,也是应用最广泛的编程语言。...你可以这样理解,最底层的是机器语言,紧接着的是汇编,然后就是C语言。 这是机器语言,看不懂?

1.1K00

C语言总集篇】函数篇——从不会到会的过程

二、C语言中函数的分类 在C语言中函数分为两种:库函数、自定义函数。那什么是库函数,什么是自定义函数呢?咱们现在就来揭晓。 库函数 1.什么是库函数 库函数简单的理解就是C语言数据库里面的函数。...换一种角度来看,库函数其实也是自定义函数,只不过这个自定义是C语言库的自定义。 3.怎么学习库函数呢?...C语言库中。...的参数是式子a+b,第二次打印中printf的参数是局部变量c,第三次打印中printf的参数是自定义函数sum,接下来我们看看打印的值会不会有什么不同: 从打印结果我们可以看到,打印的值是一样的,我们通过这个例子可以得到一个结论...今天的内容到这里就全部结束了,接下来我会继续给大家分享C语言学习的相关知识点,咱们下一篇再见。

19611

Linux之父:我们不会用Rust取代C语言开发内核

gcc 对 Linux 的发展起到了很大作用,因为我肯定需要一个 C 语言编译器。Lars Wirzenius 是我在念大学时另一个说瑞典语(瑞典语在芬兰是小语种)的计算机系学生。...在内核开发方面,你觉得是否有可能用另一种语言(比如 Rust)来取代 C 语言?...Linus Torvalds:我不认为我们会用 Rust 取代 C 语言来开发内核,但可能会用来开发一些驱动程序,也许是整个驱动子系统,也许是文件系统。...所以不是“取代 C 语言”,而是“在一些有意义的地方扩展我们的 C 代码”。...如果他们做得不好——或者更常见的是,最终消失了,并转向了另一个兴趣——他们的代码就不会被合并回来,也不会阻碍其他有新想法的人。

94450

C语言总集篇】指针篇——从不会到会的过程

对于void*指针的使用我们会在后面的内容进行介绍,大家不要心急,耐心往下继续阅读; 十二、关键字const 对于const这个关键字,它的中文翻译为常数、恒量;恒定的,不变的;它在C语言中的作用正如它的意思一样...下面我们就来一起探讨一下; 12.1 变量 12.1.1 变量的分类 对于C语言来说,变量可分为全局变量和局部变量,下面我们来看一下什么是局部变量,什么是全局变量: //变量的分类 int a = 10...函数内部的局部变量; 在C语言中,我们将花括号{}称为代码块,因为我们所有的代码都是需要再{}内部编写的。...这种通过地址来修改变量的值的方式是绕过了C语言的语法规则,打破了const的规则限制,这显然是不合理的,那我们应该怎么做才能保证即使拿到了变量的地址也无法对变量进行修改呢?...; 现在咱们简易的计算器程序的编写就完成了,可以看到,与以往的对函数调用相比,我们通过函数指针数组进行中转调用函数时只需要一句代码通过输入值来确定需要调用的函数,这样就提高了代码的编写效率; 结语 【C语言总集篇

16610

C语言总集篇】数组篇——从不会到会的过程

在计算机语言中,我们把这种集合称为数组。...比如int类型的元素只能与int类型的元素组成集合称为整型数组; char类型的元素只能与char类型的元素组成集合称为字符数组…… 现在我们知道了什么是数组了,那我们如何用计算机语言来创建一个数组呢?...下面我们需要介绍一个C语言的操作符——sizeof; sizeof是用来计算操作数所占内存空间大小的操作符,单位是字节。这里的操作数可以是变量、数据类型也可以是数组。...C语言本身是不做数组下标的越界检查,编译器也不一定报错;但是编译器不报错,并不意味着程序是正确的,所以程序员写代码时最好自己做越界的检查。...结语 这一篇内容是对C语言数组内容的一个总集篇,里面涉及的内容也是比较全面的,希望对各位刚刚学习C语言的朋友,和想要回顾C语言相关知识点的朋友提供一点帮助。

22310

为什么永远不会语言取代 C++? | 极客时间

C++ 是编程语言中的“万能选手”,它的适用领域非常广泛,许多新的编程语言都从它身上汲取了设计灵感。...作为一门接近底层的语言,它可以帮你更好地理解计算机系统的应用机制,提升混合编程的能力,学完 C++,再学其他的语言,就会感觉容易很多。...而且 C++ 的两大利器:高抽象层次,又兼具高性能,这也是其他语言所无法替代的。现在很多有名的软件框架里都能看到 C++ 的影子,还有许多浏览器内核代码几乎全是 C++。...不断膨胀的核心语言加上庞大的标准库,让学习、使用 C++ 的门槛无形中提高了很多,不仅“新手”学起来很难,就连“老手”也觉得用好它并不是一件容易的事情。...课程里的「示例代码」并不复杂,不需要你有太多的经验(1~5 年都可以),保证让你一眼就能看明白;此外,如果你是一名 C 语言工程师,也可以来看看,毕竟 C++ 与 C 是一脉相通的,相信你也会收获一些新思路和新工具

70510
领券