为什么学习C++之前学习C语言?

news2024/12/23 7:02:18

源地址:https://www.ctvol.com/c-cdevelopment/4074.html

C++ 读作“C加加”,是“C Plus Plus”的简称。顾名思义,C++ 是在C语言的基础上增加新特性,玩出了新规则,所以叫“C Plus Plus”,还有C#,当然C#一般是针对游戏引擎开发的一块专门的开发语言,和C/C++语法上是不同的。要说渊源那就是带了一个C,不过学好C,C++和C#基本上是游刃有余。C是最接近机械语言,可以这么说C能直接嵌入汇编当中,而其他语言相对很麻烦。

c++

从语法上看,C语言是C++ 的基础,我们都知道C是面向过程的一门语言,而C++属于高级语言面向对象的语言。

我们来看看什么叫面向过程,什么叫面向对象?从大概的思维可以这么理解:

C语言是面向过程的语言:

好比一个人走路,在走路的过程记录下来,是前踏出右脚还是左脚,跟随的手上动作是先甩右手还是左手,然后将这个整体循环就是走路的一个过程。

C++语言是面向对象的语言:

也是走路的例子,而C++中不会在意这个循环动作,它会给你一个函数,让你直接调用,然后完成走路的过程,类似打了包直接扔给你,包里面是一套设备,而不是单独存在的。

虽然C学起来比较繁琐,如果能理解到,或者用心了,好比走路过程,你都能把细节性的东西掌握了,那走路就很简单了,就算出现问题,也知道问题在哪里?如果是直接学习C++的话,有可能遇到问题,都不知道问题出现在哪里?

至少小编是这样理解,500个哈姆雷特有500个想法,每个人的学习方法是不同的,当你不知道自己适合哪种方法的时候,可以试着尝试下别人的想法,然后在学习中慢慢的找到适用自己的方法。就像画画一样的,当你不会画的,什么都不懂的时候可以先尝试临摹,而不是在哪纠结牛角尖。这样既费时又费力。对吧。

当你C掌握后,再去看C++那速度肯定是像飙车一样的快感,如果是直接学习C++有可能会变成过山车,遇到一个陡坡就爬不上去的情况出现。当然,有些人有这方面的天分,这个就不说了。小编是属于那种没天赋,只能靠多学多练的那种类型。

C++和C语言的关系:

我们都知道,C出来的时候还没有C++,C++的出现主要是玩C的大佬觉得C操作太繁琐了,所以想偷懒,然后C++就诞生了,C++基本继承了C所有特性,还额外制定了很多方便的特性。以后在学习的过程中,我们会看到很多C++很方便的,但是C很繁琐,就像C语言和机械语言的关系一样的,你是宁愿写C还是宁愿写0,1来替代是一个道理。当然区别我们现在不谈。其他的C和C++都是独立的。这个最明显的区别。当然,C++的诞生是小编自己的猜想,不做正规的理论。就当取乐用就可以了。

C和C++的教程:

C和C++的教程有许多,根据自己的学习程度选择,C的话到处都是基本看自己适合哪一套,讲的都是差不多的。只要自己理解就好,C++的话,目前最火的就是c++ primer plus,这个网上有很多在线版的,或者到图书馆去买也行。当然,这里谈个闲外话,看书和网上学习是两码事。结合起来效果最好。

总结:

前面我们就了解个大概的,至于两者的发展史就不多说了,百度有很多,其实也没什么用,这些应付考试还行,说句实在的,做个了解就可以了,现目前我们就学会怎么用,怎么写,怎么去晋级才是最重要的。

重要的事说三遍:实践操作, 实践操作, 实践操作

光懂不做不行的,不管是什么语言,不实际的写,写个几遍是发现不了问题的,只有做了,才会有问题出现,编程和其他的不一样地方就是脑袋想的是一码事,操作起来又是另一码事。如果光学不练,那真的是白学。还不如去买5毛钱的麻辣烫吃起爽。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1608010.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

刻度清晰耐酸碱腐蚀PFA材质实验室用塑料量具特氟龙量筒量杯

PFA量筒为上下等粗的直筒状,特氟龙量杯是上大下小的圆台形,底座均有宽台设计,保证稳定性,两者均可在实验室中作为定量量取液体的量具,上沿一侧有弧嘴设计,便于流畅地倾倒液体。 规格参考:5ml、…

机器人路径规划:基于Q-learning算法的移动机器人路径规划,可以自定义地图,修改起始点,提供MATLAB代码

一、Q-learning算法 Q-learning算法是强化学习算法中的一种,该算法主要包含:Agent、状态、动作、环境、回报和惩罚。Q-learning算法通过机器人与环境不断地交换信息,来实现自我学习。Q-learning算法中的Q表是机器人与环境交互后的结果&#…

(十八)C++自制植物大战僵尸游戏的游戏暂停实现

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/uzrnw 游戏暂停 当玩家遇到突发事件,可以通过暂停功能暂停游戏,以便及时处理问题。在激烈的游戏中,玩家可能需要暂停游戏来进行策略调整。此外,长时间的游戏对战可能会让玩…

开源相机管理库Aravis例程学习(二)——连续采集multiple-acquisition-main-thread

开源相机管理库Aravis例程学习(二)——连续采集multiple-acquisition-main-thread 简介例程代码函数说明arv_camera_set_acquisition_modearv_camera_create_streamarv_camera_get_payloadarv_buffer_newarv_stream_push_bufferarv_camera_start_acquisi…

一周IT资讯

又降了?运维4月平均月薪1W6? 薪资作为大部分人的主要收入来源,是每个人最关注的话题之一。 最近,小编搜索了近半年的运维薪资趋势,看看你的钱包缩水了没? *数据来自看准网 据了解,运维2024年…

【6】DongshanPI-Seven 应用开发_多线程编程记录

目录 1、多线程编程1.1 测试程序 1.2 测试结果 1、多线程编程 在Linux系统中,调度是以线程为单位的,资源分配是以进程为单位的。多进程是指多个main()函数的程序,多线程,只有1个main()函数。进程和线程是多任务操作系统中的两种不…

Linux 基于 UDP 协议的简单服务器-客户端应用

目录 一、socket编程接口 1、socket 常见API socket():创建套接字 bind():将用户设置的ip和port在内核中和我们的当前进程关联 listen() accept() 2、sockaddr结构 3、inet系列函数 二、UDP网络程序—发送消息 1、服务器udp_server.hpp initS…

【Flutter】自动生成图片资源索引插件一:FlutterAssetRefGenerator

介绍 FlutterAssetRefGenerator 插件:windows上 点击生成图片索引按钮后,pubspec.yaml 会出现中文乱码,需要手动改乱码;mac上没问题。 优点:点击图标自动生成。 目录 介绍一、安装二、使用 一、安装 安装FlutterAsset…

ubunt18.04安装ROS2

本文无废话,实现了ubunt18.04 下ros2的安装,并且同时兼容ros和ros2 如果想完ros(1)的,请参考我的前一篇文章:ubunt18.04安装ROS避坑指南 参考: https://blog.csdn.net/cau_weiyuhu/article/deta…

2024年【A特种设备相关管理(锅炉压力容器压力管道)】考试内容及A特种设备相关管理(锅炉压力容器压力管道)操作证考试

题库来源:安全生产模拟考试一点通公众号小程序 2024年A特种设备相关管理(锅炉压力容器压力管道)考试内容为正在备考A特种设备相关管理(锅炉压力容器压力管道)操作证的学员准备的理论考试专题,每个月更新的…

5.Godot节点和功能及Node节点属性分析

1. 节点和功能的关系 节点 Node ,用于实现一种功能,例如,Sprite 节点,用于图片的显示一个节点的功能取决于它挂载了哪些子节点,它包含了哪些功能的子节点,就包含了对应子节点表示的功能节点是可选的&#…

Dota2 参议院

题目链接 Dota2 参议院 题目描述 注意点 senate[i] 为 ‘R’ 或 ‘D’假设每一位参议员都足够聪明,会为自己的政党做出最好的策略 解答思路 对于任意一位参议员,如果其有权利,当他后面没有另一方参议员,其会投票,…

小红书笔记写作方法和技巧分享,纯干货!

很多小伙伴感叹小红书笔记流量就是一个玄学,有时精心撰写的笔记却没有人看,自己随便写的笔记却轻轻松松上热门。实际上你还是欠点火候,小红书笔记写作是有一套方法和技巧的,总归是有套路的,如果你不知道,请…

C++ 数据结构 linux 【第一天】

1.命名空间 在C/C中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局作 用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字…

【MIT6.824】lab3 Fault-tolerant Key/Value Service 实现笔记

引言 lab3A的实验要求如下: Your first task is to implement a solution that works when there are no dropped messages, and no failed servers. You’ll need to add RPC-sending code to the Clerk Put/Append/Get methods in client.go, and implement Pu…

✌粤嵌—2024/4/12—插入区间✌

代码实现: 解题思路:先将数组 newInterval 插入到数组 intervals 的末尾,再转换成合并区间 /*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returne…

组合预测 | Matlab实现ICEEMDAN-SMA-SVM基于改进完备集合经验模态分解-黏菌优化算法-支持向量机的时间序列预测

组合预测 | Matlab实现ICEEMDAN-SMA-SVM基于改进完备集合经验模态分解-黏菌优化算法-支持向量机的时间序列预测 目录 组合预测 | Matlab实现ICEEMDAN-SMA-SVM基于改进完备集合经验模态分解-黏菌优化算法-支持向量机的时间序列预测预测效果基本介绍程序设计参考资料预测效果 基本…

两个查国内产业信息新闻数据的必备网站

产业经济信息网:产业经济信息网由报业协会主管主办,成立于1997年,是由报业行业报委员会发起,几十家权威行业媒体共同组建的、国内最大的行业信息发布网站之一。网站所拥有的“产经数据库”容纳了54家行业媒体的信息数据200多万条&…

Nextjs学习入门 - 创建第一个项目

1 通过npx创建一个nextjs项目 通过命令创建: npx create-next-applatest 得到如下项目结构图: my-app- src //源代码目录- app //引用目录- favicon.ico //网站图标- globals.css //全局css- layout.tsx //布局文件- page.tsx //页面 路径"…