C语言标准化历程:从C89到C99

需积分: 16 19 下载量 199 浏览量 更新于2024-08-07 收藏 609KB PDF 举报
"这篇文章主要介绍了C++编程语言中的赋值表达式,以及C语言的发展历程和各个版本的主要改进。" 在C++编程中,赋值表达式是程序中常见的操作,用于将右侧的值传递给左侧的变量。赋值运算符包括简单的赋值运算符`=`, 乘法赋值`*=`,除法赋值`/=`,模除赋值`%=`,加法赋值`+=`,减法赋值`-=`,左移赋值`<<=`,右移赋值`>>=`,按位与赋值`&=`,按位异或赋值`^=`以及按位或赋值`|=`。这些运算符都是右结合的,这意味着它们会从右向左计算。在执行赋值操作时,必须确保赋值的左侧是一个左值(lvalue),即可以被读写的位置,例如变量。左值不能是数组、不完全类型或函数,也不能是具有`const`限定符的类型。如果左值是一个结构体或联合体,那么它的任何成员或递归子成员也不能有`const`限定符。 赋值表达式的结果类型是左值的类型,并且其值是在赋值操作完成后存储在左值中的值。这意味着,如果右值的类型与左值不兼容,编译器会尝试进行类型转换以确保赋值的合法性。例如,如果左侧是一个整型变量,而右侧是一个浮点数,那么浮点数会被转换为整数后再进行赋值。 在了解了C++的赋值表达式后,我们转向C语言的发展历程。C语言自1978年K&R第一版以来,经历了一系列标准化的过程: 1. Traditional C,即“K&R”C,是早期没有官方标准的C语言,主要基于Kernighan和Ritchie的书籍描述。 2. C89,也称为ANSI C或C90,是C语言的第一个正式标准,由ANSI在1989年采纳,随后被ISO采纳为国际标准ISO/IEC 9899:1990。这一版本引入了函数原型、`const`和`volatile`关键字、宽字符和多字节字符等新特性。 3. C95,实际上是对C89的修订版,称为“C89 with Amendment 1”,增加了更多关于宽字符和多字节字符的功能。 4. 最新的C标准是C99,发布于1999年,包含了复数类型、整数类型扩展、变长数组、布尔类型、更好的非英语字符集支持以及C++风格的单行注释等重大改进。 每个版本的C标准都对语言进行了扩展和优化,以满足开发者的需求和计算机科学的进步。了解这些历史和标准,有助于程序员更好地理解和使用C/C++语言,编写更高效、更可靠的代码。