C语言中'&'和'*'运算符详解:历史背景与应用

需积分: 12 1 下载量 14 浏览量 更新于2024-08-24 收藏 5.67MB PPT 举报
"《对“&”和“*”运算符说明 - C语言第三版谭浩强》一文主要讲解了C语言中的两种重要运算符,“&”(地址符)和“*”(解引用运算符)。首先,&运算符用于获取变量的内存地址,例如在pointer_1 = &a这一语句中,&a表示变量a的内存地址。由于“&”和“*”的运算优先级相同,但遵循从右向左的结合顺序,所以在表达式&* pointer_1中,先计算*pointer_1(指针所指向的值,这里是变量a),然后再进行&运算,所以结果等同于&a,即变量a的地址。 其次,当pointer_2 = &*pointer_1时,它实际上是将变量a的地址赋给pointer_2。如果pointer_2之前指向其他变量b,经过这个操作后,pointer_2的指向就会改变,指向了变量a的新位置。这体现了C语言中指针的操作特性,通过指针可以直接访问和修改内存中的数据。 文章开头部分介绍了C语言的历史背景,包括其起源和发展过程。C语言起源于1970年的B语言,由D.M.Ritchie在1973年基于B语言改进而成,尤其在1975年随着UNIX第6版的发布,C语言因其优点得到了广泛关注。随后,《The C Programming Language》的出版推动了C语言的普及,并成为全球广泛使用的计算机语言之一。ANSI在1983年制定了ANSIC标准,进一步规范了C语言,而该书也在1988年进行了相应的修订。C语言的标准随着时间不断更新和完善,现在大多数C语言编译系统都是以ANSIC为基础的。 尽管不同的C语言编译系统可能存在细微的功能差异,但本书主要依据ANSIC标准进行讲解,因此读者在学习时应考虑所使用的编译器特性。理解这些运算符及其应用对于深入学习C语言至关重要,特别是在处理指针和内存管理时。"