2023-10-10-C++指针和引用【程序员生涯的第一座里程碑】

news2024/9/28 3:25:18


🍿*★,°*:.☆( ̄▽ ̄)/$:*.°★* 🍿

💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥
💟💟喜欢的朋友可以关注一下,下次更新不迷路💟💟
😆😆😆私聊获取个人订阅号哦,欢迎订阅共同学习😆😆😆
💖💖💖💖可以加入大家庭群聊,一起学习天天有福利💖💖💖💖





🍬本文摘要

在这里插入图片描述

作为一个c++程序员的我来说,大量学习和输出c++代码已有一年之久,因为大学期间学习的编程语言比较复杂,日常的代码量也比较少,因此之前对c++的学习并不是很多,大学毕业的时候对c++的了解可以算半个小白,在经历了一年时间的学习,在今天突然有种顿悟的感觉,这篇文章主要是为了记录一下这一年来的感悟,其次是为了写一下对于编程中非常要注意的一些指针和引用的知识。


目录

  • 🍬本文摘要
  • 😉一、这一年来的学习心得
  • 🐱‍🐉二、基础阶段
  • 🎉三、基础阶段
  • 🐱‍🚀四、基础阶段
  • 🎂五、基础阶段
  • 🥩六、基础阶段
  • 🍚七、基础阶段
  • 🥠八、基础阶段
  • 🍤九、基础阶段
  • 🥚十、基础阶段
  • 🥡十一、基础阶段
  • 🌯十二、基础阶段
  • 🥫十三、基础阶段
  • 🍳参考文献
  • 🧊文章总结



😉一、这一年来的学习心得

不知道大家上学期间有没有这样一种感受,班级里数学最好的那个同学(比如我,高考数学147)永远不是那个泰勒公式背的多么滚瓜烂熟的人,而是那个能立刻答出sin30°=1/2的人。有的人可能会想,这么简单的基础,谁不知道啊,如果谁想不起来这个答案那别学数学了,但是事实可不是这样,立刻答出这个答案的人可怕的地方是他对于基础的掌握已经可以用根深蒂固这个词来形容了,不管是在做作业还是在紧张的考试,他都能看到sin30°立刻想到1/2,看到1/2立刻想到sin30°,对于其他的基础知识一样如此,一道大题经常会卡在一个基础知识的运用上,这也就是为什么这种人的数学分数这么高的原因,基础牢固对复杂的知识自然会做到领会贯通,举一反三,相反基础不牢则地动山摇,在考试中是拿不到太高的分数的。
反观我这一年的学习过程,刚开始的我作为一个小白,会汲取目前能够汲取到的养分,但不会有选择的去学习知识,因为我也不知道去学习哪些知识。当时第一个我接触到的项目用到了非常多的C++新特性,各种让你得一个个搜索一个个学习的关键字,各种华丽的函数,各种看不懂的代码,当时的我认为这就是c++的极致了,这就是c++的终点了吧,原来这就是c++啊!于是我开始不停的学习c++每一个关键字,每一个函数的用法, 即使这些关键字我可能写一万行代码也用不到一次,但是我也要看,我也要尝试写。轮到我自己写项目的时候,我就挑这些生僻的关键字用,即使我知道怎么用更直白的写法把功能实现,我也不用,我偏要用别人一下子看不懂的写法写,让别人想研究我的代码的时候需要一边看一边搜索这个写法是什么意思,仿佛这样我就比别人会的多,懂得厉害了一样。
直到我接触到了这个世界上最优秀的产品之一,毫不夸张,非常有幸自己能够欣赏最优秀的代码。
这个产品非常的好用,功能无比的强大,扩展性极高,有三四层楼那么高,一定是非常顶级的一群工程师写出来的。当我看到产品的源码的时候,第一眼见到时,语法之朴素让我有些不屑一顾(有点夸张,但是先把我想象成一个高傲的人反衬代码的优秀),读起来简直丝毫压力没有,没有华丽的辞藻,没有生僻的关键字,没有晦涩难懂的语法,我心想为什么这些顶级的工程师要这么写呢,难道不应该写的非常复杂吗。于是我就再看,再看,再看。越看越震撼,越看越不可思议,几百万行代码的工程,内部逻辑之严谨,层次之分明,写法之规范,把强内聚、低耦合发挥到极致,把扩展性、健壮性、可移植性各种书本上的概念考虑之周全,让人感到无比震惊。我有些迟疑,c++究竟该怎么写?
从这里开始,之前我是自信的用复杂的写法写代码,后来我是担忧的用复杂的写法写代码,直到我写出了让人匪夷所思的bug,看着逻辑非常通畅的程序为什么就是出bug,看着自己都不敢确定到底安不安全的代码,我想了又想,想了又想,对代码中自己不确定安不安全地方我搜索到底对不对,我测试到底对不对。
恍然间,豁然开朗。
写代码的快乐所在并不是用了多么生僻的关键字,而是在定义完一个简单指针后我能够准确的说出我为什么要这么定义,我凭什么这么定义,这么定义的好处是什么,这个变量开辟在哪个空间,作用域是什么,从哪里来,从哪里走,我敢拍着胸脯的保证这个程序是安全的,因为c++程序的关键,就是安全!把时空复杂度压缩到到极致是我的追求,写出安全可靠效率高的程序是我的快乐!
一个好的程序并不应该是充满晦涩难懂的语法的,而是应该是规范易懂的,它是程序员之间沟通的桥梁,是开发人员之间的桥梁,是开发人员和维护人员之间的桥梁,让其他开发人员和维护人员看到代码时有种酣畅淋漓、赏心悦目的感觉,这才应该是一个好的程序。无意义的复杂语法只会增加后续阅读和找问题的难度,没有任何实际价值。
接下来我的目标就是学习更安全的写法,学习效率更高的写法,写出更优秀的代码!
下面是一些最近学的知识,分享给大家,希望对大家有所帮助。

🐱‍🐉二、基础阶段


🎉三、基础阶段


🐱‍🚀四、基础阶段


🎂五、基础阶段


🥩六、基础阶段


🍚七、基础阶段


🥠八、基础阶段


🍤九、基础阶段


🥚十、基础阶段


🥡十一、基础阶段


🌯十二、基础阶段


🥫十三、基础阶段


🍳参考文献

🧊文章总结

提示:这里对文章进行总结:

  本文讲了关于格式的整体写法,通过这种方法,快速的让读者了解并可以写作,本文类似于一个模板,大家可以在这个模板上编辑。






更多好文推荐

🍸2021-4月Python 机器学习——中文新闻文本标题分类
🍹2021年4月-(计算机网络)小型校园网络模拟搭建,最全最准确版
🍺2022-10-31-基于用户的协同过滤推荐算法实现+MAE+RMSE
🍻2022-11-28-大数据可视化,特征维度大于50
🥂2023-3-9-一篇简短的文章把C++左右值关系讲的透透彻彻

上一篇
End
下一篇

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

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

相关文章

中职院校网络综合布线技术理实一体化实训室建设方案

中职院校的网络综合布线技术课程存在一些问题,主要表现在: 教师过于注重理论知识的讲授,实践教学被忽视。学校硬件设施不足,无法开展案例中的实际操作,影响学生实践能力的培养。学生进入工作后,实际操作能力较差,难以胜任工作岗位。 为了提高学生的网络综合布线技能和操作能力…

碰撞检测算法——分离轴算法实现(一)

在实现分离轴算法前,需要做一些准备工作,在Unity中实现自定义多边形的显示,以及获取多边形的顶点和边的数据。 1.实现自定义多边形显示 Unity中MeshFilter是负责处理Mesh(网格)的信息的引用,MeshRender是渲…

管程的定义以及基本特征

1.引入管程 为了解决信号量机制存在的问题:编写程序困难、易出错。 1973年,Brinch Hansen首次在程序设计语言(Pascal)中引入了“管程”成分:一种高级同步机制。 2.管程的定义和基本特征 1.管程是一种特殊的软件模块,有这些部分…

Leetcode——数组的遍历系列练习

485. 最大连续 1 的个数 class Solution { public:int findMaxConsecutiveOnes(vector<int>& nums) {// 记录最大连续1个数int max 0;// 记录数组中存在1个数int sum 0;// 遍历连续1个数int count 0;for (int i 0; i < nums.size() - 1; i) {if (nums[i] 1)s…

linux | linux扩大磁盘空间 | centos7.9 | 虚拟机

注意&#xff1a;可以完全参考下面这边博客&#xff08;我只是搬运工&#xff09; centos扩大磁盘空间 简单讲讲&#xff0c;为什么有点失落落的&#xff1f; 明明就是一个 很程序化的东西 可是网上一大推 天花乱坠 而且很多人都是半吊子水&#xff0c;甚至半吊子都没有 通过关…

jdbc(DriverManager+Connection+Statement+ResultSet)+SQL注入+开启预编译+数据连接池

1 JDBC概念 JDBC 就是使用Java连接并操作数据库的一套API 全称&#xff1a;( Java DataBase Connectivity ) Java 数据库连接 2 JDBC优势 可随时替换底层数据库&#xff0c;访问数据库的Java代码基本不变 以后编写操作数据库的代码只需要面向JDBC&#xff08;接口&#xf…

裸辞18K外包,面试阿里、字节全都一面挂,哭死.....

测试员可以先在外包积累经验&#xff0c;以后去大厂就很容易&#xff0c;基本不会被卡&#xff0c;事实果真如此吗&#xff1f;但是在我身上却是给了我很大一巴掌... 所谓今年今天履历只是不卡简历而已&#xff0c;如果面试答得稀烂&#xff0c;人家根本不会要你。况且要不是大…

[软件工具]ARW文件批量转图片jpg工具使用教程

当你有一批后缀为.ARW格式图像文件怎么转jpg呢&#xff0c;我们可以使用这个工具进行转换首先我们打开软件 然后我们直接导入文件夹&#xff0c;点击开始转换等待转换完成即可。详细视频教程参看&#xff1a; ARW文件批量转图片jpg png bmp工具使用教程_哔哩哔哩_bilibili这个…

自动化测试基础篇:Selenium 框架设计(POM)

【导语】Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。本文介绍selenium的框架设计。 自动化测试框架 1.什么是自动化测试框架 简单来说&#xff0c;自动化测试框架就是由一些标准&#xff0c;协议&…

Vue-2.1scoped样式冲突

默认情况&#xff1a;写在组件中的样式会全局生效->因此很容易造成多个组件之间的样式冲突问题 1.全局样式&#xff1a;默认组件中的样式会作用到全局 2.局部样式&#xff1a;可以给组件加上scoped属性&#xff0c;可以让样式只作用于当前组件 <style scoped> <…

长沙建筑模板生产厂家有哪些?

在湖南长沙地区&#xff0c;建筑施工企业寻找一家可信赖的建筑模板供应商是非常重要的。在长沙地区&#xff0c;有多家建筑模板生产厂家&#xff0c;其中值得一提的是能强优品木业&#xff0c;他们是长沙地区建筑模板生产的领先供应商之一。 能强优品木业位于广西贵港市&#x…

Leetcode: 63. 不同路径 II(动态规划)

1. 题目解析 LeetCode链接 根据题目可以得出&#xff0c;当处于 [i][j] 位置时只能从 [i][j - 1], 和 [i - 1][j] 到达&#xff0c;所以我们只需要将到达上述两点的路径相加就可以得到到达该点的路径和 2. 解题思路 通过分析题目我们可以使用动态规划来解决这道题 首先我们…

【计算机网络笔记】什么是计算机网络?

前言计算机网络的定义交换网络什么是Internet从组成细节角度看从服务角度看 最后感谢 &#x1f496; 本篇文章总字数&#xff1a;1342字 预计阅读时间&#xff1a;5~10min 建议收藏之后慢慢阅读 前言 计算机网络通信技术计算机技术。 计算机网络是通信技术与计算机技术紧密结…

求后缀表达式的值

后缀表达式的值 【题目描述】 从键盘读入一个后缀表达式&#xff08;字符串&#xff09;&#xff0c;只含有0-9组成的运算数及加&#xff08;&#xff09;、减&#xff08;—&#xff09;、乘&#xff08;*&#xff09;、除&#xff08;/&#xff09;四种运算符。每个运算数之间…

面试题____Java小白找工作必须领悟的修仙秘籍(二)

当我们走出校园&#xff0c;步入社会&#xff0c;必须得找工作&#xff0c;那么作为it小白你必须拥有过硬的基础应用知识&#xff0c;才能慢慢的适应工作的节奏&#xff0c;以下内容则都是基础中的基础&#xff0c;需要全部进行掌握&#xff0c;因为这里可能有你面试时需要回答…

故障注入常用方法有哪些 其重要性是什么

故障注入是一种有效的测试方法&#xff0c;可用于评估系统对异常情况的响应。通过这种测试方法&#xff0c;可以发现系统中的潜在问题&#xff0c;并采取适当措施来改进系统的质量和性能。本文将介绍故障注入常用方法及重要性! 一、故障注入常用方法 1、随机故障注入&#xff1…

交易履约之结算平台实践 | 京东云技术团队

导读 京东科技业务在快速发展的同时&#xff0c;产生了众多线上化资金结算的需求。传统的线下资金结算模式有着人力成本高、耗时长、多方沟通协调成本高、结算准确率低等固有缺点&#xff0c;且无法满足“风法财审”对于资金流程的管控要求&#xff0c;在此背景下金道结算平台…

springboot就业信息管理系统springboot32

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…

[UUCTF 2022 新生赛]ezpop - 反序列化(字符串逃逸)【***】

[UUCTF 2022 新生赛]ezpop 一、解题过程二、其他WP三、总结反思 一、解题过程 题目代码&#xff1a; <?php //flag in flag.php error_reporting(0); class UUCTF{public $name,$key,$basedata,$ob;function __construct($str){$this->name$str;}function __wakeup(){i…