C语言基础:值、类型与抽象状态机
1. 抽象状态机
C程序可视为操纵值的机器,这些值包括程序变量在特定时刻的值,以及计算表达式产生的中间值。以下是一个基础示例:
double x = 5.0; double y = 3.0; ... x = (x * 1.5) - y; printf("x is %g\n", x);在此示例中,有两个变量x和y,初始值分别为5.0和3.0。第三行进行了一系列表达式计算:
-x:计算x的值,为5.0;
-(5.0 * 1.5):结果为7.5;
-y:计算y的值,为3.0;
-7.5 - 3.0:结果为4.5;
-x = 4.5:将x的值更改为4.5;
-x:再次计算x的值,此时为4.5;
-printf("x is %g\n", 4.5):向终端输出文本行。
并非所有操作及其结果值都能在程序内部观察到,只有存储在可寻址内存或写入输出设备的值才可观察。在该示例中,printf语句在一定程度上“观察”了上一行的操作,通过计算变