电脑真的会思考吗?
电脑看起来很聪明,能下棋、写文章、画画……那它是真的在思考吗?这篇文章带你揭开电脑“思考”的秘密!
浏览计算机、编程、网络与人工智能的全部文章。
电脑看起来很聪明,能下棋、写文章、画画……那它是真的在思考吗?这篇文章带你揭开电脑“思考”的秘密!
电脑不一定都有键盘、鼠标和大机箱。手机、平板和游戏机看起来很不一样,它们为什么也属于计算机?
电脑、手机、平板、游戏机,甚至儿童智能手表都能叫计算机。那么到底满足什么条件,才算是一台计算机呢?
计算机不只是会算数。它还能处理文字、图片和声音,保存信息、连接世界、控制设备,并帮助我们自动完成许多任务。
你点一下鼠标、敲一下键盘,电脑为什么马上就有反应?跟着一次完整任务,看懂输入、准备、处理、输出和保存是怎样配合工作的。
CPU、内存、硬盘都准备好了,电脑为什么还是不能自己完成任务?因为硬件只会执行动作,程序才告诉它应该一步一步做什么。
电脑机箱里并不是一个神秘的大盒子。CPU、内存、硬盘、主板、显卡、电源和散热器各有自己的任务,它们一起合作,电脑才能真正工作起来。
CPU 是电脑里最重要的处理部件之一。它会不断取出指令、理解指令、执行操作,再继续处理下一条。
为什么程序打开以后要先进入内存?内存就像电脑的工作台,专门放正在使用的程序和数据,让 CPU 可以更快地取用。
照片、视频和程序关机后为什么还在?因为硬盘或 SSD 会把数据长期保存下来。它们到底把 0 和 1 藏在了哪里?
CPU、内存、硬盘和显卡为什么能互相合作?因为主板把它们连接起来,就像一座有道路、站点和规则的交通城。
生成过程可能从多个候选中选择,因此相同问题可以产生不同回答。
聊天 AI 通常用语言模型根据上下文生成回答,还可能配合检索或其他工具。
语言模型可能生成看似合理但错误的内容,常称为幻觉。
传统规则程序主要按人明确写下的规则工作;机器学习让模型从训练数据中调整内部参数。
AI 能力有任务和条件边界,不能用一个优秀表现概括所有事情。
语言模型通过训练与上下文计算,学习语序、搭配和关系模式。
常见自回归语言模型逐步生成 token,并利用已经生成的内容继续计算。
图像生成模型利用训练中学到的模式,根据条件产生图片。
音频生成模型可产生语音、音乐或其他声音,具体能力依训练任务而定。
讨论 AI 作品时,可以先区分创作流程中的不同贡献。
AI 的“记忆”可能指当前上下文、应用保存的信息,或训练形成的参数知识,这些不是一回事。
优化通常通过多次参数更新逐渐改进模型。
AI 不一定能可靠判断自己的答案是否正确。
机器学习利用数据中的模式来改进模型完成任务的表现。
AI 错误可能来自数据、输入、模型能力或使用场景不匹配。
语言模型把文字转成数值表示,在上下文中计算关系。
AI 可以表现出推理、规划和语言处理等能力,但这不自动证明它有主观感受。
图像分类、目标检测和分割是不同视觉任务。
能看、听、说的 AI 系统通常组合多种输入表示和输出能力。
AI 处理图片时先使用像素等数值表示,再通过模型提取和组合信息。
图像分类模型通过训练学习与类别相关的视觉模式。
训练系统可以通过目标和损失函数计算误差。
语音转文字用模型把音频映射成文本。
声音模型处理随时间变化的音频信号。
图片理解把视觉线索与任务联系起来,但无法可靠知道照片之外的一切。
语音系统把声音转成可计算的数据,再用模型识别或处理语言。
视频理解需要处理画面随时间的变化,可能还结合音频。
API 是程序使用另一部分功能的接口约定。
App 可以向服务器请求数据,再用自己的界面呈现。
人工智能是研究和构建能完成某些智能任务的系统的领域。
常见人工神经元先计算加权和与偏置,再应用激活函数。
与 AI 一起思考,可以让它提供不同解释、反例和检查问题。
注意力机制通过计算,把不同位置的信息按权重组合。
浏览器与服务器通过协议交换数据。
与 AI 做项目时,把目标拆成可检查的小步骤。
聊天系统常通过服务器帮助转发、保存或同步消息。
核验 AI 回答要把可检查的主张拆开,再选合适证据。
客户端请求服务,服务器提供服务,这是通信中的角色。
AI 可帮助解释和编写代码,但使用者需要理解关键逻辑并验证结果。
域名按层级组织,最右侧常见的 com、org、cn 属于顶级域。
一次网络请求从明确输入开始,到收到并正确使用响应结束。
计算机网络把设备连接起来,使它们能够交换数据。
设备结合地址、前缀和路由信息决定怎样发送。
用 AI 创作图片时,先明确用途和视觉重点,再生成并检查。
互联网通过多段链路与路由设备传递数据。
深度学习通常指使用多层神经网络学习表示和完成任务的方法。
AI 发展包含多条相互影响的研究路线,数据、算法与算力进步共同推动能力变化。
聊天能力常在基础模型之上,通过指令示范和其他后续训练进一步改善。
常见以太网连接用网线传递信号,Wi-Fi 使用无线电。
训练改变模型参数,推理通常使用已有参数计算输出。
DNS 是分布式、分层的域名系统,保存并查询名字相关的记录。
DNS 查询常先利用已有缓存,缺少记录时由递归解析器继续寻找。
没有可用缓存时,解析器可依据层级指引寻找权威回答。
域名与 IP 不一定一对一。
下载通常更看重持续吞吐量,互动游戏还非常在意延迟、延迟波动和丢包。
加密通过算法和密钥把内容转换成密文,使没有合适密钥的人难以恢复明文。
网上内容可能错误、过时、被剪裁或虚构。
与 AI 沟通时,把模糊评价变成具体要求。
特征是模型使用的可计算信息。
训练常通过计算预测与目标之间的误差,更新参数以改进表现。
访问网页通常涉及解析地址、确定目标、建立适当连接、发送请求与呈现资源。
数据可能因拥塞、链路问题等丢失。如何补救取决于协议和应用。
家庭设备通常先通过网线或 Wi-Fi 接入本地网络,再通过运营商提供的线路接入互联网。
HTML 描述页面的结构,CSS 控制呈现方式,JavaScript 可实现交互与计算。
HTTP 是应用层的通信协议,规定客户端和服务器如何表达请求与响应。
HTTPS 是通过 TLS 等安全机制保护的 HTTP 通信。
HTTPS 帮助保护浏览器与服务之间的通信。
网络链路能承载的数据单位大小有限,大内容通常要分块。
数字足迹包括主动发布的内容,也可能包括服务因使用而记录的信息。
输入层连接数据,隐藏层进行中间变换,输出层给出预测所需的数值。
互联网是许多网络相互连接形成的全球网络系统。
网络安全是保护设备、账号与信息,也包括识别不合理请求。
IP 地址用于网络寻址,帮助把数据送往对应的网络接口。
IP 与端口在不同层次帮助交付数据。
IPv6 使用 128 位地址,提供远多于 IPv4 的地址组合。
大语言模型是通过大量语言等数据训练的模型,可处理和生成文本。
语言模型训练通常包含学习广泛数据模式,以及针对目标行为的后续训练等阶段。
AI 可作为练习伙伴,帮助换一种解释、出题或给提示。
局域网是在有限区域内连接设备的网络,例如家庭、教室或办公区的网络。
机器学习中的“学习”通常指系统借助数据改善某项任务表现。
模型是一种把输入映射为输出的计算表示。
数据价值不仅取决于数量,还取决于质量、覆盖范围与任务相关性。
AI 未来能力取决于算法、数据、算力、工程与社会选择等因素。
多模态 AI 处理或关联文字、图片、声音等多种数据形式。
网络延迟描述数据传递需要的时间,常用毫秒表示。
人工神经网络由相连的计算单元组成,通过参数控制信息怎样组合与变换。
神经网络训练常用反向传播计算损失对参数的梯度,再由优化方法更新参数。
前向计算让输入沿网络结构产生中间结果,最终得到输出。
数字识别是一种图像分类任务。
多层网络可以逐步组合和变换信息,表达复杂的输入输出关系。
常见 IPv4 地址把 32 位分成四组,每组 8 位,写成十进制数字并用点分隔。
服务器可以通过并发、异步处理、多个工作线程或进程等方式服务多个请求。
数据包是网络中传输的数据单位,可以包含控制信息和实际内容。
互联网路由会随故障、策略或拓扑变化而调整,数据包不保证永远走同一路线。
IP 地址帮助网络定位目的接口,路由表提供转发方向。
钓鱼网站通过冒充可信服务,诱使人交出敏感信息或执行不安全操作。
Ping 通常通过 ICMP 回显请求和应答测量往返时间,并观察是否收到回应。
网络游戏需要交换动作或状态,让不同设备对游戏进展保持一致。
端口号帮助操作系统把传输层通信交给对应的端点或服务。
Prompt 通常指提供给模型的输入提示,可以包含任务、背景、示例或材料。
隐私保护从减少不必要的信息暴露开始。
验证码常用于确认某次敏感操作。
私有地址在各自本地网络中使用,不作为公共互联网中的全球路由地址。
路由器在网络之间转发数据包,根据目的地址等信息选择下一跳。
IPv4 地址空间理论上约 43 亿个组合,但有些范围用于特殊用途。
服务器可以指提供服务的软件,也常指运行这类软件的计算机。
陌生链接可能指向诈骗页、下载或其他不合适内容。
掌握基础知识,才能发现 AI 的错误、提出更好的问题并理解结果。
密码用于证明你有权访问账号。
使用 AI 时应减少不必要的私人信息分享。
安全使用网络需要判断、习惯和及时求助。
TCP 为应用提供可靠、有序的字节流。
教分类模型需要明确任务、准备合适样本、训练并独立评估。
文本通常先经分词得到 token 编号,再映射为向量等数值表示。
Token 是语言模型处理文本时使用的单位,可能是词、词的一部分、字符或其他片段。
训练数据用于模型学习,评估数据帮助观察它对未见情况的表现。
Transformer 是一类使用注意力等组件的神经网络结构。
AI 生成代码可能含逻辑、边界或安全错误,验证责任不能交给它一句保证。
设备通信要共同遵守协议,也就是数据格式和交换步骤的约定。
UDP 提供数据报传输,不在协议本身保证可靠送达或有序到达。
浏览器是访问和呈现网页的应用程序。
网页从服务端到屏幕,经历网络传输和本地呈现。
域名为网络资源提供分层的名字。
网站是一组关联的网页和服务,网页是浏览器能呈现的具体内容。
权重是模型中的可调参数,影响输入对后续计算的作用。
云服务器是通过服务方式提供的计算资源,底层仍依靠真实硬件。
AI 可出现在语音识别、图像处理、推荐等日常功能中。
游戏里的3D世界、视频和图片为什么能快速显示?因为 GPU 很擅长同时处理大量相似计算,但它并不是“只会画画”的芯片。
AI 可加快部分编程工作,例如样板代码、解释和候选实现,但不能免除工程判断。
AI 可以提供个性化解释和练习,但学习效果取决于怎样使用。
AI 可能改变一些任务的完成方式,但不能由一项能力推断所有人都会被替代。
清楚的提示给出目标、必要背景和可检查的要求。
AI 可以协助构思、改写和寻找不同表达,但作者仍要决定故事想传达什么。
www 来自 World Wide Web,常被用作网站主机名中的标签。
键盘和鼠标并不能直接读懂我们的想法。它们会把按键、移动、点击等动作变成电子信号和数据,再交给操作系统和程序理解。
屏幕上的图片并不是一整块“画”出来的,而是由大量像素共同组成。电脑把画面数据送到显示设备,再由屏幕控制每个像素发出或调节不同颜色的光。
CPU、内存、SSD、主板、显卡、键盘鼠标和屏幕并不是各做各的。电脑完成一次任务时,它们会在程序和操作系统的协调下不断交换数据、分工合作。
按下电源键后,电脑不会立刻进入桌面。它要先供电、启动固件、检查和初始化硬件、找到启动设备,再把操作系统一步一步加载起来。
操作系统不是一个普通应用程序。它负责管理硬件资源、运行程序、组织文件、处理设备输入输出,并为应用程序提供统一的工作环境。
桌面、图标和窗口并不是电脑天生就有的东西,而是图形用户界面的一部分。它们帮助我们更直观地管理程序、文件和多个任务。
双击一个程序图标后,电脑并不是简单地“把程序复制到内存”。系统会先识别你的操作、找到真正的程序文件、创建进程、准备虚拟内存和运行环境,再由 CPU 开始执行程序指令。
程序平时长期保存在 SSD 或硬盘里,但运行时,操作系统会把当前需要的代码和数据映射到进程的虚拟地址空间,并在需要时把相应页面调入内存。这样 CPU 才能高效取得正在执行的指令和数据。
程序进入可运行状态后,CPU 会不断取得机器指令、理解指令需要什么操作、准备数据并执行,再决定下一条指令在哪里。真实 CPU 还会使用流水线、缓存、分支预测和乱序执行等技术提高效率。
电脑看起来能同时播放音乐、打开网页、聊天和下载文件,是因为操作系统会调度很多进程和线程,让它们轮流获得 CPU 时间;多核处理器还可以让多个线程真正同时执行。
电脑“变卡”并不是一种单一故障。CPU 太忙、内存紧张、存储读写拥堵、显卡负载过高、温度过高导致降频,甚至网络变慢,都可能让我们感觉电脑反应迟钝。
电脑并不是真的“只认识数字 0 和 1”。更准确地说,现代数字计算机通常用两种稳定的电状态来表示两种符号状态,我们把它们记作 0 和 1。
一个 0 或 1 并没有固定的物理大小。在计算机里,我们常把一个二进制位称为 Bit(比特):它一次只能处于两种可能状态之一,例如 0 或 1。
今天的计算机里,1 Byte(字节)通常定义为 8 Bit。这个“8”不是自然规律,而是计算机历史、字符编码、硬件设计和行业标准长期发展后形成并固定下来的约定。
二进制和十进制一样,也是一种按位计数的方法。十进制每一位按 1、10、100……增长,而二进制每一位按 1、2、4、8……增长;数到这一位不能再增加时,就向左边进位。
把十进制整数变成二进制,可以用“拆成 2 的幂”或“不断除以 2 记录余数”两种常见方法。它们本质上是在找:哪些二进制位应该是 1。
把二进制整数变回十进制,最直观的方法是看每一位的位值:从右往左依次是 1、2、4、8、16……,把值为 1 的那些位对应的位值加起来,就得到十进制结果。
KB、MB、GB、TB 都是表示数据量大小的单位。今天按国际单位制,1 KB = 1000 Byte,1 MB = 1000 KB,1 GB = 1000 MB,1 TB = 1000 GB;而 1024 进制应使用 KiB、MiB、GiB、TiB。
电脑保存数字时,不是把“13”“-5”“3.14”这些字符原样塞进内存,而是按照数据类型和编码规则,把数值表示成一串 Bit。整数、负数和小数使用的表示方法并不完全一样。
电脑保存字母时,不是把“A”“B”“C”的形状直接塞进内存,而是先按照字符编码规则给字符分配编号,再把这些编号保存成二进制数据。
电脑并不是“看见汉字就懂中文”。它会把汉字按照 Unicode 等标准分配码点,再用 UTF-8 等编码方式保存成字节;显示时,还需要字体把字符画成我们看到的字形。
我们看到的是一张完整图片,但电脑保存图片时,通常会把它记录成有规则的数据。照片、截图这类位图主要由大量像素组成;图片文件还会包含尺寸、颜色、压缩方式等信息。打开图片时,软件会先解码,再把像素画到屏幕上。
像素(Pixel)是数字位图中最基本的图像位置单位。每个像素记录一个位置上的颜色信息;大量像素按行列排列,就组成我们看到的照片、截图和其他位图。
RGB 是数字图像和屏幕中常见的颜色表示方法。它用红、绿、蓝三个颜色分量组合出很多颜色;在常见的 8 Bit 每通道表示中,每个分量通常可以取 0~255。
声音本来是空气中的连续振动。麦克风会先把这种振动转换成连续变化的电信号,模数转换器再通过采样和量化,把它变成一串数字,最后才能保存、传输和处理。
照片和视频会占用很多空间,是因为它们要记录大量像素、颜色和时间变化。视频比照片更大,是因为它相当于连续保存很多张画面,再加上声音等数据。压缩可以明显减小文件,但压缩方式、分辨率、帧率和码率都会影响大小。
数字、文字、图片、声音、视频,甚至温度、位置和运动,都可以按照规则转换成计算机能够保存和处理的数据。但“变成数据”不是把现实世界完整复制进电脑,而是选取某些信息,用测量、编码、采样等方法表示出来。
文件是计算机中保存一组相关数据的一种基本方式。它通常有文件名、内容、大小和格式等信息,由文件系统负责记录它存在哪里、占用了哪些存储空间,并让程序能够读取和写入。
文件后缀是文件名的一部分,常用来提示文件采用什么格式,例如 .jpg、.txt、.mp3、.cpp。它能帮助人和操作系统判断应该用什么程序打开,但真正决定文件格式的是文件内部的数据结构,而不是后缀名本身。
文件夹(目录)用来组织文件和其他目录,形成一层一层的树状结构。它帮助我们按名称和路径找到文件,但从文件系统角度看,文件夹并不是一个真正“装着文件数据的大盒子”,而是记录名称、层级和关联关系的一种目录结构。
删除文件并不总是意味着数据立刻从存储设备上消失。很多时候,文件会先进入回收站;彻底删除时,文件系统通常先取消目录中的记录并把原来占用的空间标记为可重新使用。之后这些数据可能被覆盖,SSD 还可能通过 TRIM 等机制更快释放底层存储单元。
程序是一组让计算机执行任务的指令,而软件通常是一个更完整的产品或系统,除了程序代码,还可能包含资源文件、配置、数据、文档和其他组成部分。可以说,程序常常是软件的重要组成部分,但软件不一定只等于一个程序。
安装软件并不是“把一个程序复制进去”这么简单。安装程序通常会把软件需要的程序文件、资源文件和组件复制到指定位置,还可能创建配置、注册文件类型、安装共享组件、创建快捷方式,并让操作系统知道这个软件已经安装。
不同文件内部的数据组织方式不同,软件必须懂得对应的文件格式,才能正确解释这些 Byte。操作系统通常会根据文件扩展名和文件关联选择默认程序,但真正能不能打开,取决于软件是否支持文件的真实格式。
文件、文件夹、软件、程序、内存、CPU 并不是互相独立的概念。软件以文件的形式保存在存储设备里,文件夹负责组织这些文件;当程序启动时,操作系统会找到程序文件,把需要的代码和数据装入内存,再由 CPU 执行。程序运行过程中,还会继续读取和保存各种文件。
大 O 常用来描述增长的上界,入门时用它比较主要工作量。
参数把调用处的数据带入函数。
运算符表达加减乘除等动作。乘除通常比加减先算,括号可以明确我们要先算的部分。
C++ 数组下标表示相对首元素的位置,第一项的偏移是 0。
普通 C++ 数组的元素在内存中连续排列。
数组越界就是访问了有效范围之外的位置。
赋值先求右边表达式的值,再把结果写入左边指定的变量。
广度优先搜索按层扩展。
二分查找利用有序性缩小候选区间。
每次把候选数量缩小到大约一半,所需轮数增长很慢,这叫对数级增长。
二叉树中每个节点最多有两个孩子,并区分左和右。
拆函数时,先说清每个函数需要什么输入、产生什么结果。
拆分让每一步都有明确输入和输出。
continue 跳过本轮剩余动作;break 结束它所在的最近一层循环。
暴力搜索直接检查所有候选,思路往往容易验证。
冒泡排序通过相邻比较和必要的交换,让较大元素逐步向右移动。
Bug 是程序中的缺陷,可能使结果错误,也可能让程序无法运行。
阶乘 n! 表示从 1 乘到 n,约定 0! = 1。
调用栈帮助管理普通函数调用的返回顺序。
char 可以保存字符编码的一个基本存储单位,bool 表示真或假。
数据结构与算法要一起服务任务。
选择结构先列出常见操作。
std::cin 常用于读取输入,std::cout 常用于输出。
比较表达式产生真或假。> 与 >= 的差别,就在边界是否包含。
编译工具把源代码转换成目标代码,链接把需要的部分组合起来。
类型告诉程序怎样解释数据,以及允许怎样使用它。
定义描述函数的名字、输入以及动作;调用让程序执行这套动作。
DFS 与 BFS 的主要区别是探索顺序。
深度优先搜索先深入一个分支,再回退探索其他分支。
递归自然表达 DFS 的深入与返回。
先设计再编码,可以把规则错误与语法错误分开。
边界测试针对最容易被默认假设漏掉的输入。
else 提供 if 条件不成立时的另一条路。对于这一组 if/else,一次只走其中一边。
枚举把允许的候选情况逐个列出,再判断是否满足要求。
先估算关键操作次数,再结合实际环境测试。
算法是一套解决问题的明确步骤。
调试从可重复的错误开始。
找最大值时,记录“目前见过的最大值”,每看一个新值就比较并按需更新。
平均数是总和除以数量。
在无权图或每条边代价相同的情况下,BFS 可找到最少边数的路径。
函数可以在执行中调用自己,每次调用有独立的参数和执行位置。
图用顶点表示对象,用边表示关系。
贪心在每一步做一个当前看起来最好的选择。
if / else if / else 按顺序检查,找到第一个成立的分支就执行。
每一层普通递归调用都需要记住返回位置,以及本层仍要使用的信息。
函数调用另一个函数时,调用者会等待这次调用的结果,然后继续。
累加变量把上一轮的结果带到下一轮。
插入排序保持前面一段有序,每次把下一个元素插到合适位置。
int 用于保存一定范围内的整数。C++ 的整数除法会舍去小数部分,结果向零截断。
C++ 是一种编程语言,可以表达计算、判断和重复动作。学习它时,先弄清程序在做什么,再认识符号。
CPU 执行的是机器指令。C++ 代码要经过工具处理,运行时再由计算机执行。
顺序查找逐个检查元素,不要求事先排序。
链表节点保存数据和连接信息。
循环让一组动作按条件重复执行。
优化先找真正耗时的地方,再减少重复工作或换合适算法。
对这里的非负整数,14 % 4 得 2,表示除以 4 后的余数。
数组把同类型数据按顺序放在一起,用一个名字加下标选择元素。
函数给一段任务明确的名字和边界,让程序可以复用这段逻辑。
数据结构描述怎样组织数据,以及怎样访问和修改它。
&& 要求两边都成立,|| 只要求至少一边成立,! 把真假反过来。
完整解题要从题意走到算法,再到实现与验证。
前缀和保存从开头到某位置的累计总量。
同一个问题可能有多种算法,适用条件和工作量不同。
数组的价值不只是放很多数,还在于保留每个位置的意义。
算法是解决问题的一套明确步骤;程序把步骤写成计算机可执行的形式。
顺序执行表示语句按规定顺序发生,后面的语句会看到前面产生的变化。
编程是在用计算机能处理的语言表达解决任务的规则。
嵌套循环让每次外层动作都包含一轮完整的内层重复。
队列按先进先出的规则处理元素。
读题先把要求翻译成自己的话。
递归用同一种方法解决更小的同类问题,再把结果带回来。
终止条件让最小情况直接得到答案,而不继续递归。
递归不仅有向下调用,还有向上返回。
递归可以表达“探索这个位置附近的路”。
return 可以结束当前函数,并按返回类型把结果交给调用者。
搜索是在候选状态或位置中寻找符合条件的目标。
选择排序每一轮找出未排序部分的最小值,放到该部分的开头。
模拟按题目给出的规则更新状态。
通过样例说明这些输入下结果正确,不代表所有合法输入都正确。
DFS 把迷宫看成位置与可走连接组成的图。
适合递归的拆分要保留相同的问题形式,同时让规模变小。
程序耗时受算法、数据规模、实现和硬件共同影响。
发现重复子任务后,可以考虑保存可复用结果。
栈按后进先出的规则操作。
从最小规模开始,可以看出初始化、边界和递推关系。
字符串表示字符序列。
暴力解法常用于理解问题,并给优化算法提供小规模参照。
if 让程序根据条件选择是否执行一段语句。
时间复杂度描述工作量随输入规模增长的趋势。
追踪程序,就是按执行顺序记录状态变化。
遍历就是按计划访问一组元素。
遍历字符串可以逐项检查并统计。
树适合表达层级关系。
树是图的一种特殊情况。
建模把现实任务变成可以计算的数据和关系。
二维数组可用行与列组成的表格理解。
变量让程序用一个名字保存和访问数据。盒子比喻帮助我们看清“名字”和“当前值”是两回事。
整数类型只能表示有限的数。输入都放得下,不代表相加或相乘也放得下。
局部变量在特定作用域中使用。不同函数可以有同名局部变量,它们不是同一个对象。
程序通过变量名表达要使用的数据。内存模型中,可以把地址理解为寻找存储位置的编号。
while 在每轮开始前检查条件。循环体通常要改变与条件有关的状态,才能接近结束。
把程序想成一张有起点的任务单。常见的 C++ 控制台程序从 main 开始执行,std::cout 把内容送到标准输出。