静水流长

常用链接

统计

最新评论

C语言中的一些问题

C语言中的符号重载
符号 意义
static 在函数内部,表示该变量的值在各个调用间一直保持延续性
在函数这一级,表示该函数只对本文件可见
extern 用于函数定义,表示全局可见(属于冗余的)
用于变量,表示它在其他地方定义
void 作为函数的返回类型,表示不返回任何值
在指针声明中,表示通用指针的类型
位于参数列表中,表示没有参数
* 乘法运算符
用于指针,间接引用
在声明中,表示指针
& 位的AND操作符
取地址操作符
= 赋值操作符
==
比较运算符
<=
<<=
小于等于运算符
左移复合赋值运算符
< 小于运算符
#include指令的左界定符
() 在函数定义中,包围形式参数表。
调用一个函数
改变表达式的运算次序
将值转换为其他类型(强制类型转换)
定义带参数的宏
包围sizeof操作符的操作数(如果它是类型名)

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())
==和!=高于位操作符 (val & mask != 0) (val & mask) != 0 val & (mask != 0)
==和!=高于赋值符 c = getchar()!=EOF (c = getchar()) != EOF c = (getchar() != EOF)
算术运算高于移位运算符 msb << 4 + lsb (msb << 4) + lsb msb << (4 + lsb)
逗号运算符在所有运算符中
优先级最低
i = 1, 2 i = (1, 2) (i = 1), 2

posted on 2010-09-10 21:59 LinusYu 阅读(235) 评论(0)  编辑 收藏 引用 所属分类: C


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理