Zhao Zhengyang

《C++程序设计原理与实践》笔记 第3章 对象、类型和值

本章介绍程序中的数据存储和使用的基本知识。 3.1 输入 “Hello, World!” 程序只是打印到屏幕,它不从用户那里得到输入。实际的程序通常基于我们给它的输入产生结果,而不是每次执行都做相同的事。 为了读取数据,需要在计算机内存中的某个地方放置读取的内容,这样的“地方”称为对象。对象(object)是一个某种类型(type)的内存区域,类型指定了可以放置什么样的信息。有名字的对象...

《C++程序设计原理与实践》笔记 第2章 Hello, World!

2.1 程序 为了使计算机能够做某件事,你需要在繁琐的细节上明确告诉它怎么做。对“怎么做”的描述称为程序(program),编程(programming)是书写和测试这个程序的行为。为了向计算机精确描述这些事情,我们需要一种由特定语法精确定义的语言,这种语言称为编程语言,C++是为各种编程任务而设计的编程语言。 2.2 经典的第一个程序 这是经典的第一个程序的一个版本,它在屏幕上输出 “H...

《C++程序设计原理与实践》笔记 第0章 致读者

通常,只有在真正编写程序求解一个问题的过程中才会对问题本身理解透彻。 我从不会说:“先学习一个月的理论知识,然后看看你是否能使用这些理论吧。” 我们的目标是,回答那些你在编写供他人使用的高质量软件时需要考虑的问题。 简单练习(drills):你应该完成所有简单练习,如果你没有完成简单练习,就不能说完成了本书的学习。 习题(exercises):我们不期待你能完成所有习题,但请...

《C程序设计语言》笔记 第7章 输入与输出

本章将讲述标准库,介绍输出/输出、字符串处理、存储管理与数学函数以及其他一些服务的函数。本章的重点将放在输入/输出上。 7.1 标准输入/输出 如第1章所述,标准库实现了简单的文本输入/输出模型。文本流由一系列行组成,每一行以一个换行符结尾。如果系统没有遵循这种模型,则标准库会通过一些措施使其看起来遵循了这种模型。例如,标准库可能在输入时将回车符(carriage return, CR, ...

《C程序设计语言》笔记 第6章 结构

结构(structure)是一个或多个变量的集合,这些变量可能是不同的类型,为了方便处理而组织在一个名字之下。由于结构将一组相关的变量看作一个单元而不是各自独立的实体,因此结构有助于组织复杂的数据,特别是在大型程序中。 结构的一个传统例子是工资记录:每个雇员由一组属性描述,如姓名、地址、社会保险号、工资等。其中的某些属性也可以是结构,例如姓名可以分成几部分,地址甚至工资也可能是这样。C语言...

【C++】二维数组的行指针和列指针

在C++中,数组与指针有密切的关系。任何通过数组和下标实现的表达式可等价地通过指针和偏移量实现。下面首先介绍一维数组与指针的关系,之后介绍二维数组的行指针和列指针。 1.一维数组和指针 定义一个长度为3的一维数组a: int a[3] = {1, 2, 3}; 假设其首元素地址为0x9F36FAE0,则数组元素在内存中的示意图如下图所示: 1.1 指向数组元素的指针 指向数组元...

《C程序设计语言》笔记 第5章 指针与数组

指针(pointer)是一种保存变量地址的变量。在C语言中,指针的使用非常广泛。一个原因是,指针有时是表达某个计算的唯一途径;另一个原因是,同其他方法比起来,使用指针可以生成更紧凑、更高效的代码。指针与数组之间的关系十分密切,本章将讨论它们之间的关系,并探讨如何利用这种关系。 指针和goto语句一样,会导致程序难以理解。如果使用者粗心,指针很容易就指向了错误的地方。但是,如果谨慎地使用指针...

Protocol Buffers入门教程

1.简介 Protocol Buffers(简称为protobuf)是Google开发的用于序列化结构化数据的语言无关、平台无关、可扩展的机制。与JSON、XML等序列化方式相比,Protocol Buffers更小、更快、更简单。只需定义一次数据的结构化方式,之后就可以使用特殊生成的源代码很容易地将结构化数据读取和写入到各种数据流,并使用各种编程语言。 项目主页:https://g...