首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我十分喜欢C,却很不喜欢C++

那么,为什么我没有抛弃 C 而选择其他语言呢?我对于 C++的看法又是如何的呢? ? 为什么说C不是最好的语言? 首先,这个世上没有最好的编程语言。...然而,与自动变速箱相比,这种车辆的发动机能量更大,而且你可以预测性能,还可以炫车技,这些在其他车辆上都是不可能的。 这与C++有什么关系? 下面,我们来说一说 C++,其实我不讨厌 C++。...另一方面,C++ 有两个特征,我非常不喜欢。 首先是这门语言的整体性质。其他编程语言拥有的流行功能最终都会进入 C++。因此,每过几年,C++标准就会添加一些新功能。...我不喜欢过于冗长的编译时间,但这种方式只能让情况更糟。 最后,我觉得 C++的出现反而给 C 带来了约束以及不良影响。...我无法想象为什么这种行为被禁止,其原因只可能是编译器优化。这样就不可能利用联合体将整数转换成浮点数。Linus 也曾吐槽过这一点,我就不用重复了。

71910

10min快速回顾C++语法(五)字符串专题

C++语法基础(五) ⭐写在前面的话:本系列文章旨在短时间内回顾C/C++语法中的重点与易错点,巩固算法竞赛与写题过程中常用的语法知识,精准地解决学过但有遗忘的情况,为算法刷题打下坚实的基础。...注意:在C++和java中,’ '和“ ”意义不同,一个是针对字符,一个是针对字符串。...char a2[] = {'C', '+', '+', '\0'}; // 列表初始化,含有显示的空字符 char a3[] = "C++";...char str[100]; //读入到哪,最多读入多少字符,从哪个文件读入(通常stdin,定义好的) fgets(str, 100, stdin); // gets函数在新版C+...int i = 0; i < s.size(); i ++ ) cout << s[i] << endl; return 0; } 或者使用基于范围的for语句: c+

90610
您找到你想要的搜索结果了吗?
是的
没有找到

为什么 Docker 和 Kubernetes 是用 Go 写的而不是 C# ?

为什么不是 C# 呢? .NET 和 C# 现在功能已经很强大了,是不是社区缺少这种文化?如何才能培养一种更加开源的文化, 因为很多开发人员对 .NET 和 C# 仍然还抱有偏见。...enry_straker: 坦白说,即便是现在,如果可以选择的话,我更愿意在考虑 C# 之前,使用 C、C++、Rust 或 Golang 等语言编写系统工具。...而像 C/C++ 这样的稍微低级的语言可以让您更接近硬件,对性能有要求时,这是最合适的。 我可以用螺丝刀敲打钉子很多次,也可以用锤子花很大的力气把螺丝打进去,都可以完成工作。...不管你喜不喜欢,C# 的语法太复杂了。它从 2.0 到现在的 10.0 变化非常快,相同的代码逻辑可以用太多不同的方式编写。...Go 大概只有 25 个关键字,而 C# 有 100 多个,并且有很多语法糖。 代码只是建立技术或商业价值的一种手段,熟悉语言代码风格,然后快速地为大型开源项目做出贡献很重要。

1.1K00

不要和一种编程语言厮守终生:为工作正确选择

而且,有时候我们之所以不喜欢选择这种语言的原因可能正是为什么我们要选择那种语言的原因。 ?   ...那么,我们该怎么知道哪些你不喜欢的语言是有帮助的呢?这就引出了我们的第二条原则: 对自己要诚实:知道自己为什么不喜欢一门语言,不要教条化自己的憎恶。   ...但是,如果我对自己诚实的话,我会承认,我之所以不喜欢 C++ 的这些功能,是因为它将表达这些细节的责任归咎于我。...在一个这些细节是必不可少的上下文中,我不喜欢 C++ 的原因正是我应该使用这种语言的原因。   这是否意味着,我们应该愁眉苦脸地使用这些会让我们对这语言恼怒的功能?也没有必要。...至于为什么不喜欢某一门语言的功能,请诚实地告诉自己。 越熟悉其他语言,越好   对于这一点,就是我们要说的第三个原则: 如果你拥有的唯一工具是一个锤子,那么你看每一个问题都像是钉子。

63070

【Go 语言社区】Golang(Go语言)的三大设计目标

目前比较适合做相对底层一点的东西,比如云计算、数据库、服务器后端等方面的,有些人可能不喜欢golang的语法,认为限制太多,比如大括号不能抬头等,不然编译都不能通过,但是我觉得这样很好,就不存在各种编程风格之争...还有其大繁至简的设计理念,使得用很少的代码量就能完成很复杂的开发工作,只要习惯了语法,写起代码来很轻松~~ C/C++这种类型语言的优点是运行速度快,缺点是编译较慢,语言诞生很早,由于历史原因,C++起初本身并不完美...,规范经过不断完善修改并兼容,导致C++很复杂,虽然性能好,但是开发效率不是很高。...Java、.NET(C#)这种类型语言的优点是编译快,容易写,缺点是运行相对较慢。 动态类型语言(JavaScript、PHP等)的优点是容易写,缺点是运行相对较慢。

756100

如何从程序员日常的行为特征,判断出他所使用的编程语言

python程序员的特征 Python语法优雅,功能强大,开发效率高。和其他语言相比,python最大的好处是接近自然语言,基本上不用考虑语法细节。...(就是不喜欢打字)他们喜欢使用苹果产品。遇事想得多做的少,看起来比较冷静,碰到困难,先google,再行动。 ?...“以前从来没有出现过这种情况!” “昨天还运行好好的啊!” “这怎么可能?” “一定是硬件出问题了!”...被提bug的反应 你为什么要那样操作?” 用户不会像你这么操作的。...有人总结,越是学习趋于人类思维方式的编程语言的程序员,性格能开朗点,因为他们是以近似人的思维思考问题,相反像c++这种语言,用久了就会生怕忘记点什么。

83420

本立道生,Go interface背后的对象模型

Linus说他不喜欢C++,一部分原因是C++编译器偷偷地在目标代码里干了很多事情以完成C++的诸如虚拟继承、多重继承等OO相关的语意,这使得大神觉得这种行为超出了他的控制,他喜欢从C代码一眼看穿汇编代码的那种直接...毕竟久经C和C++的蹂躏,学习新语法,再用它来写代码可谓驾轻就熟。但有几个问题一直困扰着我:类型断言和反射到底是如何实现的?interface value到底包含了什么?...语法(grammar)是关于语言的结构或语法。它需要回答问题:如何构造一个有效的句子?所有语言,包括人类(也称为“自然”)语言都有语法,即规定句子是否被正确构造的规则。...为什么呢?引用Stanley B....它被注释分成三部分: 定义了一个interface String,包含一个method String(),用来把内容字符串化以便于打印。

33130

C++代码简化之道

我是极简主义者,崇尚简洁明快的代码风格,这也可能是我不喜欢Java全家桶的原因……当然我说的简洁是要建立在不降低可读性的前提下,即不影响代码本身的表现力。如果为求代码精简而让代码晦涩艰深同样不可取。...3. lambda表达式替换手写函数和函数对象 lambda表达式(或者说lamba对象)可能是C++程序员在回答『熟悉C++11吗?』这个问题,答完auto之后,说出的第二个新语法。...#endif C++也继承了这种写法。然而时至今日还可以这样写: #pragma once ... 这个语法很久之前就有,但并非是C++标准的一部分。...但在很多编译器厂商的实现中,早早地支持了这种语法。C++11中这个语法依旧没有转正,但是由于被编译器广泛支持,几乎可以放心使用了。在Google和Facebook的C++开源项目中都有大量使用。...当然在个别情况下,这个语法也存在坑: 不同于头文件防护,这条语用使得错误地在多个文件中使用相同的宏名变得不可能。

1.3K20

Julia焦虑?这有份Facebook软件工程师的测试差评

我将在这篇文章中解释为什么。 性能 当我看到Julia网站上报道的微基准测试时,我感受到了第一个次失望。...表达式语法更合理了,但仍然有一些非正统的选择操作符,标点符号和多行注释的语法(例如#= \ // $?),这些注释会给使用者带来不少麻烦。 从1开始索引的设计决策也有待商榷。...Julia确实有一个基本字符串插值,但目前来看,它似乎只对最基本的格式有用。 作为宏,@printf/ @sprintf为每个格式字符串生成自定义代码,希望它比在运行时解析它更有效。...用于单元测试的库也非常基础,至少与C++和Java中的库相比是这样。...原因并不是因为不喜欢混搭中的某一种语言,而是该项目要求开发人员同时精通数种编程语言。这相当于只有拥有独特专业知识或在特定领域内工作的开发者才有能力参与到项目中。

1K20

C++这么难,为什么我们还要用C++?C++ Core Guidelines解析给了我答案

为什么入门选C,不选C++/Java/Python?...踏入大学的后,计算机相关专业同学大多入门的编程课都是C语言,然后慢慢进阶到C++/Java/Python等高级语言.为什么会先学C,为什么不直接学习Java或者C++呢?...一旦学生掌握了 C 语言的基础编程概念,他们通常会更容易地过渡到其他编程语言,因为许多高级语言如 C++ 和 Java 基于 C 语言,具有类似的语法结构和编程概念。...,以及如何使用C++来解决,以及相应的解决方案; 1、C语言字符语法的常见陷阱及如何用C++来解决 例如,定义了如下4个变量 char c1 = 'yes'; char c2 = "yes"; const...使用C++来解决和规避以上问题 C++定义了string类,专门用来存储和提供了一系列的字符串操作。

47230

Kotlin 初体验: 用 Kotlin 写命令行工具

google android 平台的新一门官方语言, 偶尔有了个写工具的机会试着用它来替代原来常用的 python 工具需求 工具需求很简单: 批量处理 proj 工程代码, 对符合条件的代码做后续的字符串替换...可以看到 readScheduler/writeScheduler, ThreadFactory 没有显式的写匿名对象, 因为 kotlin 支持这种 lambda 式的语法糖, 来实现一个单函数接口(...自己并没有深入学习 kotlin, 只是了解了些皮毛, 会写像 C 一样的 Java, 会写像 Java 一样的 Kotlin… 看到有同事写的 : http://km.oa.com...喜欢的点 常量特性 val, 对 @NonNull 这种修饰的原生支持 对 Nullable 的 fallback 语法 字符串模板 data class apply, let, with … 待补充...不喜欢的点 X..Y 这样的 range 表示有点蛋疼.

2.3K70

每天学点 Go 规范 - 代码不能写太宽,那么函数该怎么换行呢?

为什么要限制呢?在 这篇文章 中的描述我是非常赞同的,这里笔者就不再赘述了,读者可以直接参阅。至于 120 这个数字是怎么来的?我就非常费解了。...其实使用这种模式的同学,很多只是纯纯地不喜欢下面的流派 3 而已3、入参与出参不允许同行func SendRobotMessageToChatGroup( ctx context.Context,...因此,笔者不喜欢长长的链式调用,因为这种模式破坏了代码块的层级。...(这也是笔者不喜欢 gorm 的原因之一)例外情况虽然规范中对代码宽度进行了限制,但是实际上在一些情况下,由于 Go 语言语法的限制会导致换行后语法就不通过的情况,或者是不建议换行的情况:结构体 struct...每个类型后面的 tag,特别是适配 gorm 的那一堆 tag(不喜欢 gorm 的理由 + 1)字符串常量,为了保证完整性,不要为了换行而换行,特别是使用反引号括起来的字符串

1.4K30

写算法,用 C++ 还是用 Java ,差别大吗?

好好一本算法书,为什么要用 c++ ? 尽管学习 Java 了很长时间,但是因为工作的需要,很少用 Java 做过大型的项目,所以在公开算法实现的时候,我本能地选择最擅长的 C++ 语言。...我介绍算法用的例子都是用 C++ 编写的,最终招致读者吐槽:“好好的一本算法书,为什么要用 C++?”...字符串 很多 C++ 程序员喜欢的用 char* 或 char 类型的数组存储字符串,这其实是 C 语言用户带过来的习惯,我给出的 C++ 算法实现对字符串一般都用 std::string,对应 Java...C++11 版本引入了一种根据范围循环的语法,一般理解和 Java 的增强 for 循环类似,比如这种 C++ 循环形式: ? Java 与之对应的形式是: ?...类和封装 首先说说 C++ 的 struct,Java 没有与之对应的相似物的,但是完全可以用 class 来替换这个概念。为什么这么说呢?

2.7K20

用十年来学编程

为什么每个人都急不可耐?...C++语法(如果你已经会一门类似的语言),但你无法学到多少如何运用这些语法。...简而言之,如果你是,比如说一个Basic程序员,你可以学会用C++语法写出Basic风格的程序,但你学不到C++真正的优点(和缺点)。那关键在哪里?...这能让你获得一些工作的入门资格,还能让你对此领域有更深入的理解,但如果你不喜欢进学校,(作出一点牺牲)你在工作中也同样能获得类似的经验。在任何情况下,单从书本上学习都是不够的。...当你是最差的时候,你学习高手们在做些什么,以及他们不喜欢做什么(因为他们让你帮他们做那些事)。 接手别的程序员完成项目。用心理解别人编写的程序。

78660

C++雾中风景2:struct还是class?

1.struct关键字: 在C++语言作为C语言的一个超集,但是并不兼容C语言的所有语法规则的。...C语言是我学习的第一门编程语言,相对于对其中的语法规则比较熟悉,C语言之中可以使用struct关键字来将基础数据类型进行组合,实现很多类型如图,树等高级的数据结构。...一开始学习C++时,我天真的以为这就是struct的用法了。但是我们不要忘了,C++可是一门面向对象的语言,C++的设计者利用了struct关键字添油加醋了。...我不喜欢这种设计,显然,无论在何种情况下,显式的指明访问权限才是一个好的编码习惯,利用语言本身的规则来做的访问控制,并不是一种十分高明的方式。...(语法糖写了一时爽,滥用之后会带来很多团队协作的问题) 所以今天这篇文章表达了一下我个人的观点,C++之中有太多纷繁复杂的特性了,很多时候我们可能会因为一时的便利而使用了一些很不好的特性。

74220

看完知乎30W程序员关注的轮子哥的编程之路,我只想说,收下我的膝盖...

为了顺利完成它,我悟到了很多道理,包括为什么要面向对象,为什么要划分模块减少互相依赖。这也成为我后来开发自绘图形界面和脚本引擎的契机。...我很快就看完了,然后用了里面的知识做了第一个真正意义上的脚本引擎,语法山寨了 Java 语言的一些简单的部分,还添加了一个编译的时候自动把模板参数都改成 Object 类型的语法,起了个名字叫 Jove...不过这种东西本来就是超级简单的,很快弄完之后,我又变成做数据库的了。于是这让我明白了一个道理,多半研究院是没有我喜欢的东西的了。...人类为什么要互相伤害?...但是我做了几年还是觉得不喜欢 SQL,就跳槽到了 MSRA,结果 MSRA 拼命让我搞数据库的东西。也不想想本来我就是不喜欢弄这个才走的…… 后来我想好吧,反正编译器没得搞了,那我还是拖控件吧。

91930

看完知乎轮子哥的编程之路,我只想说,收下我的膝盖...

为了顺利完成它,我悟到了很多道理,包括为什么要面向对象,为什么要划分模块减少互相依赖。这也成为我后来开发自绘图形界面和脚本引擎的契机。...我很快就看完了,然后用了里面的知识做了第一个真正意义上的脚本引擎,语法山寨了 Java 语言的一些简单的部分,还添加了一个编译的时候自动把模板参数都改成 Object 类型的语法,起了个名字叫 Jove...不过这种东西本来就是超级简单的,很快弄完之后,我又变成做数据库的了。于是这让我明白了一个道理,多半研究院是没有我喜欢的东西的了。...人类为什么要互相伤害?...但是我做了几年还是觉得不喜欢 SQL,就跳槽到了 MSRA,结果 MSRA 拼命让我搞数据库的东西。也不想想本来我就是不喜欢弄这个才走的…… 后来我想好吧,反正编译器没得搞了,那我还是拖控件吧。

2.4K00

剑指OfferV2(增) -- 把数字翻译成为字符串

https://github.com/Damaer/Coding 文档地址:https://damaer.github.io/Coding/#/ 剑指OfferV1 系列已经完成,补增 V2 题目以及C+...+语言解法,欢迎关注~ Part146.把数字翻译成为字符串 1题目描述 有一种将字母编码成数字的方式:'a'->1, 'b->2', ... , 'z->26'。...} return count1 + count2; } }; 但是上面的代码时间复杂度太高了,只要字符稍微长一点,运行时间就超过限制了: 这道题其实可以用动态规划,为什么这么说...我们将过程逆推,要想求得当前的字符串的译码类型,其实有两种,最后一个单独翻译,另外一种是倒数最后两个字符合起来翻译,这两者之和就是我们所要求的结果。...个人写作方向:Java源码解析,JDBC,Mybatis,Spring,Redis,分布式,剑指Offer,LeetCode等,认真写好每一篇文章,不喜欢标题党,不喜欢花里胡哨,大多写系列文章,不能保证我写的都完全正确

52020
领券