对象和左值
对象是一个命名的存储区域,左值是引用了某个对象的表达式。
指针和整数
指针可以加上或减去一个整型表达式。两个指向同一数组中同一类型的对象的指针可以进行减法,其结果被转换为整型。
指针可以转换为整型,但此整型必须足够大;所要求的大小依赖于具体的实现。整型对象可以显示的转换为指针。
指向某一类型的指针可以转换为指向另一类型的指针,但是,如果该指针指向的对象不满足一定的存储对其要求,则结果指针可能会导致地址异常。指向某对象的指针可以转换为一个指向具有更小或相同存储对齐限制的对象的指针。("对齐"概念依赖于具体实现)
指向函数的指针可以转换为指向另一个函数的指针。调用转换后的指针所指的函数的结果依赖于具体的实现。但是,如果转换后的指针被重新转换为原来的类型,则与原来的指针相同。
指向void的指针
指向任何对象的指针都可以转换为void *类型,且不会丢失信息。它是一种通用类型,在编写通用程序时尤为重要。
表达式
C语言中没有定义表达式求值过程中的溢出、除法检查和其他异常的处理。
指针生成
对于某类型T,如果某表达式或子表达式的类习惯为"T类型的数组",则此表达式的值指向数组中第一个对象的指针,并且此表达式的类型将被转换为"指向T类型的指针"。如果表达式为一元运算符&或sizeof,则不会进行转换。
原文链接: https://www.cnblogs.com/ahl5esoft/archive/2012/06/08/2541198.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/52280
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!