目录
1.sizeof操作符的特性
sizeof在C语言中实际上是一个操作符,但总有人认为它是个函数。
什么时候必须加上括号?当sizeof的操作数是个类型名,两边必须加上括号,例如sizeof(int)
这或许就是被人常常误认为它是个函数的原因。
2.C语言中运算符优先级存在的问题
优先级问题: .点操作符的高于 * (->箭头操作符用于消除这个问题)
*p.f
你可能会认为应该是这样:p所指的对象的字段f (*p).f
实际结果:对p取f偏移,作为指针。然后进行解除引用操作 *(p.f)
优先级问题: [ ]高于*
int *ap[]
你可能会认为应该是这样:ap是个指向int数组的指针 int (*ap)[ ]
实际结果:ap是个元素为int指针的数组 int *(ap[ ])
优先级问题:函数()高于*
int *fp()
你可能会认为应该是这样: fp是个函数指针,所指函数返回int。int (*fp)()
实际结果: fp是个函数,返回 int* 。 int* (fp())
3.本章小结
优先级问题: .点操作符的高于 * (->箭头操作符用于消除这个问题)
[ ]高于*
函数()高于*
及我们常常错误认为sizeof()是一个函数!本章篇幅较短,但却讲述了一些比较费脑的知识点,贪多嚼不烂,我觉得已经足够了!
参考书籍:《C与指针》《C陷阱与缺陷》《C专家编程》这三本书常被称之为“C语言三剑客”,掌握它,你的C语言水平将达到很高的水准!