编程,说白了就是人类通过指令让计算机处理数据的过程
本质是把人类要处理的信息(比如键盘输入的内容)存进计算机(核心载体是内存),靠计算机的快速运算得到我们需要的结果,再反馈出来。
那具体怎么把键盘输入的信息存入内存?运算过程中、得出结果后,又该怎么从内存中读取数据或最终结果呢?

如果你理解了这一点:编程本质就是 “把人类的信息存进内存、靠计算机运算、再取出结果”,那你其实已经懂了编程的差不多 50%!
如果想一天就吃透这 50% 的核心知识,那我就用最通俗的方式跟你说清楚:
很多人一上来,教你的就是先来一个 hello world。
但在我在这,我要告诉你

教你要先会 hello world 的,那是懒人式教法
而我这里会先告诉你
编译器和标准
弄懂这两个,你就知道什么是:hello world
啥玩意?编译器是啥?标准是啥?
你们没听错!很多人学编程,上来就写一句 “Hello World”,但你们谁真正想过,这行字到底是怎么出现在屏幕上的?
其实靠的还是俩关键:编译器和标准。

- 先说说编译器:它就是个 “翻译 + 搬运工”。我们人类写的 C、Java 这种自己能看懂的高级语言,计算机根本不认 ,它只懂二进制、十六进制这种 “机器语言”。编译器的活儿,就是把高级语言翻译成计算机能懂的机器码,再把这些精简后的代码 “搬进” 内存里。这就像我们把一堆东西整理好,分门别类放进仓库(内存),等着后续调用。那编译器凭啥这么翻译、这么搬运?总不能瞎来对吧?这就靠 “标准” 了。
- 标准:是个很宽泛的概念,它不是某一个具体的东西,而是一堆已经开发好的 “基础模板”。比如计算机自带的函数库(lib,library)、程序员自己封装的函数集、甚至国家级、世界级统一规范的函数库,都属于 “标准” 的范畴。这些函数库里的每一个函数,都自带现成的运行逻辑。标准的作用,就是告诉编译器:你得按照这些现成的逻辑,来处理人类语言和机器语言的转换,不能自己瞎发挥。比如 “Hello World” 要显示在屏幕上,就是编译器遵循标准里的输出函数逻辑,把翻译好的代码放进内存,再调用相关函数让结果显示出来的。

所以这就有了#include <>这个 “外调命令”—— 本质就是告诉编译器:“我要用到那些现成的标准(函数库),你赶紧去调用过来!”
要是没有#include <>,你写得再复杂的逻辑代码,编译器也会一脸懵:它根本不知道该按什么标准规则把你的人类语言翻译成机器语言,自然没法跟计算机沟通。
这个有点类似神经元的概念,你们知道吧。就是神经元通过树突接收信息,在通过轴突联系其它的神经元进行指令调用和联系传导。
机器和人类一样,也有自己的“神经元”。通过获得的标准指令来知道怎么做事。
比如我们写 “Hello World” 时,须加#include <stdio.h>,这里的stdio.h就是个核心函数库(后缀.h是头文件,相当于函数库的 “目录”)。你可以去翻翻编译器的安装路径,找到include文件夹,就能直接看到这个文件,里面藏着 “让内容显示在屏幕上”“读取键盘输入” 这类基础功能的逻辑。
而且很多标准,买电脑的时候就已经自带了,比如系统里的lib库(静态库)、dll库(动态链接库)。要是电脑里没有这些标准文件,系统本身都跑不起来:没有统一的标准指令,计算机根本不知道该怎么处理各种操作。
你们玩游戏时,有时候会弹出 “缺少某某.dll” 的提示,让你去下载 ,其实就是游戏需要调用某个标准函数库,但你电脑里没有,只能补装这些 “标准指令”,游戏才能跟电脑配合着正常运行。
等后面学到 “函数” 就更清楚了:不光能用现成的标准,我们自己还能写专属的函数集,打造属于自己的 “标准”。到时候告诉编译器按我们的规则来,它就能照着我们的逻辑,跟机器沟通干活啦!
咱们这就直奔核心:
+-*/ 这些运算符号、a-z/A-Z 这些英文字母,还有汉字、其他语言的字符,到底是怎么存进内存的?
时找直接给答案:
全部转为二进制!
计算机的世界里没有 “符号”“文字” 的概念,它从头到尾只认 0 和 1 组成的二进制串 —— 比如 01000001、00101010 这种。不管是加减乘除符号,还是中文 “你好”、英文 “Hello”,最终都得变成一串 0 和 1,才能被内存接收、被计算机处理。
那是谁帮我们做这个 “转二进制” 的活儿?还是之前说的编译器和标准!
编译器会调用stdio.h这类函数库的标准 ,里面早就定好了 “什么字符对应什么二进制” 的规则。比如字符 'a' 该转成 01100001,符号 '+' 该转成 00101011,汉字 “我” 该转成 11001110 11011010(不同编码标准对应的二进制会有差异,但核心逻辑一致),这些规则都藏在标准里。

而我们常说的 “格式化输入(i)”“格式化输出(o)”,本质就是编译器照着这些标准,把你从键盘输入的字符(不管是字母、符号还是汉字)转成二进制存进内存,或者把内存里的二进制结果,再转回我们能看懂的字符显示在屏幕上 ,整个过程都是标准在背后定规矩,编译器在前线做 “翻译 + 转换”!
现在应该有点概念了吧,hello world 这几个字要显示出来,你就要知道,先辈们是做了多少的辛苦很努力为你们提前做好了的标准库了吧。所以,别以为hello world是你打出来的,而是很多大佬们通过辛苦帮你路铺好了……
好了,说到这。下次我们再聊聊……计算器的二进制是怎么格式化IO的……