代码不同于普通文字,阅读时注意两方面:

  • 符号含义:相同符号,上下文不同时含义也不同,如*和&
  • 阅读顺序:不总是按从左往右顺序阅读的,有时要倒着读或者跳着读逻辑才通顺
  • 适当省略:有些内容虽然写了,但不需要读出来
  • 分清主次:类似课文每段有中心句,代码也分主要逻辑代码和次要逻辑代码

读代码和写代码是两个相反的过程,要求是一样的

  • 读代码:代码——逻辑——这段代码干了什么(输入)
  • 写代码:要实现什么功能——逻辑——代码(输出)

1、符号含义:

Student::Student(char *name, int age, float score): m_name(name), m_age(age), m_score(score){}

  • ::读作“的”,Student类的Student函数(类似“二班的小明”,其他班也可能有叫小明的)
  • ()读作“参数”,构造函数Student()有三个参数,分别是*name,age,score
  • *读作“指针”,表示参数是指针类型的
  • :读作“初始化”,后面的初始化语句以逗号隔开
  • ()读作“等于”,m_name=name
  • {}读作“函数体”,代表Student是个函数,函数体为空

一整句连起来读:

Widget::Widget(QWidget *parent):QWidget(parent),ui(new Ui::Widget){ui->setupUi(this)}

  • 创建Widget对象时执行以下内容:执行父类QWidget的构造函数,创建一个Ui::Widget类的对象ui,并执行Ui::Widget类的setupUi()函数

其他常见语句元素:

  • public:共有继承
  • explicit:显式
  • static:静态(隐藏)
  • <>:of
  • ->:的
  • =:如果前面是指针变量,读作“指向”

只有每个符号的含义明确了,才能流畅地阅读代码;同理,只有知道具体逻辑通过什么符号表达,才能流畅地写代码

2、阅读顺序:

删除二分搜索树中最小节点的代码:

 1 Node* removeMin(Node* node){
2 // 递归到底
3 if( node->left == NULL){
4 Node* rightNode = node->right;
5 delete node;
6 count --;
7 return rightNode;
8 }
9 node->left = removeMin(node->left);
10 return node;
11 }
  • 函数定义:跳读,先读函数名(要干的事),再读参数,最后读返回值类型
  • 赋值语句:从右向左读,如int* A= B,把B赋值给A,A是一个整型指针变量
  • 判断语句:从左向右读
  • 函数调用:跳读,先读函数名(要干的事),再读参数,最后读把返回值赋给谁

按逻辑顺序读代码才不累,写代码也一样,是按逻辑顺序跳着写的,而不是像写文章一样顺着写的

参考:

显式和隐式:

https://blog.csdn.net/zyw_ym_zone/article/details/9348415

[c++] 如何流畅地读写代码的更多相关文章

  1. PPM图片格式及其C读写代码

    PPM图像格式介绍 PPM图像格式是由Jef Poskanzer 大叔,在我出生那一年,也就是1991年所创造的,碰巧的是PPM也是天蝎座. PPM(Portable Pixmap Format)还有 ...

  2. linux scull 中的读写代码

    读和写方法都进行类似的任务, 就是, 从和到应用程序代码拷贝数据. 因此, 它们的原型 相当相似, 可以同时介绍它们: ssize_t read(struct file *filp, char   u ...

  3. Hadoop_HDFS文件读写代码流程解析和副本存放机制

    Hadoop学习笔记总结 01.RPC(远程过程调用) 1. RPC概念 远程过程指的不是同一个进程的调用.它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. 不能直接拿到远 ...

  4. 10.3 io流 正篇 FileReader FileWriter读写代码

    一.FileWriter 小节: 1)FileWriter fw = new FileWriter("a.txt",true);//表示追加写入,默认是false.正常情况:执行多 ...

  5. HDFS API 文件读写代码演示

    一:准备工作 1.新建class类 2.开启HDFS服务 3.将配置文件拷贝进resources路径 方便了Configuration的读取配置. 二:读出HDFS文件系统中的文件到控制台 4.读出在 ...

  6. 012 HDFS API 文件读写代码演示

    一:准备工作 1.新建class类 2.开启HDFS服务 3.将配置文件拷贝进resources路径 方便了Configuration的读取配置. 二:读出HDFS文件系统中的文件到控制台 4.读出在 ...

  7. Python 代码风格

    1 原则 在开始讨论Python社区所采用的具体标准或是由其他人推荐的建议之前,考虑一些总体原则非常重要. 请记住可读性标准的目标是提升可读性.这些规则存在的目的就是为了帮助人读写代码,而不是相反. ...

  8. 在.net中读写config文件的各种方法

    阅读目录 开始 config文件 - 自定义配置节点 config文件 - Property config文件 - Element config文件 - CDATA config文件 - Collec ...

  9. Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅

      Android 高手进阶(21)  版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请注明出处http://blog.csdn.net/xiaanming/article/details ...

随机推荐

  1. [源码解析] 并行分布式任务队列 Celery 之 消费动态流程

    [源码解析] 并行分布式任务队列 Celery 之 消费动态流程 目录 [源码解析] 并行分布式任务队列 Celery 之 消费动态流程 0x00 摘要 0x01 来由 0x02 逻辑 in komb ...

  2. 一、python学习-基础语法

    1.计算机文件大小单位 b = bit 位(比特) 位代表 0 1 B = Byte字节 1Byte = 8 bit //一个字节等于8位 1KB = 1024B 1MB = 1024KB 1GB = ...

  3. 构建一个Flowable命令行应用

    官网链接 [(https://flowable.com/open-source/docs/bpmn/ch02-GettingStarted/#building-a-command-line-appli ...

  4. (十一)VMware Harbor 配置管理

    VMware Harbor 配置管理 这篇主要学习一下,项目下的配置管理. 主要功能就是修改项目的访问权限 当将访问权限改为

  5. day6.细说类型2

    一.字符串(一)字符串需要掌握的操作1.# strip (清除):序列是一段字符串,该函数表示从头和从尾部同时开始进行扫描,如果扫描的字符在序列字符串中,则剔除掉,一直到遇到一个不在序列字符串中的字符 ...

  6. 把握好集成测试大关,ERP就成功了一大半

    欢迎关注微信公众号:sap_gui (ERP咨询顾问之家) 前段时间收到一个朋友的信息,说他们目前正在实施ERP系统,已经到了集成测试环节了,但整个测试过程下来并不是太理想,很多接口不通,功能也还在开 ...

  7. .NET 中的 Worker Service 入门介绍

    翻译自 Steve Gordon 2020年3月30日的文章 <WHAT ARE .NET WORKER SERVICES?> [1] 随着 .NET Core 3.0 的发布,ASP.N ...

  8. Docker怎么实现容器之间的通信?

    //TODO 参考资料: https://developer.aliyun.com/article/55912 https://blog.csdn.net/u011541946/article/det ...

  9. IOS Widget(3):SwiftUI开发小组件布局入门

    引言   经过上一篇文章,我们已经可以在桌面上展示出一个小组件出来了,你肯定想小试牛刀,动手改一改,那我们就从改小组件的布局做起吧.本文不会讲解Swift语法,如果是熟悉Flutter,Kotlin这 ...

  10. Spring Security 上

    Spring Security 上 Security-dome 1.创建项目 创建一个Spring Boot项目,不用加入什么依赖 2.导入依赖 <dependencies> <!- ...