1.理解函数声明
通过认识这个让人“不寒而栗”的式子:
(*(void(*)())0)()
1)把0强制转换成了类型 void(*)(),这是一个指向函数的指针,所指向的这个函数返回值为void
ps:a)float *g():这是一个函数,返回指针float*,因为()的优先级比*高。
b)如果fp是一个函数指针,怎么调用该指针所指向的函数呢? (*fp)();
c)为了使表述更加清晰:
typedef void (*funptr)();
则那个不寒而栗的式子可以表达为: (*(funptr)0)()
2)由1)-b我们得知,这个式子的意思就是调用了上面所说的函数指针所指向的函数。
2.运算符优先级
1)任何一个逻辑运算符的优先级低于任何一个关系运算符
2)移位运算符的优先级低于算术运算符,但是高于关系运算符
算术>移位>关系>逻辑
3.不要忘了switch中的break,否则会把满足的case后面的所有case都执行。
阅读(726) | 评论(0) | 转发(0) |