(1)C语言语法限制不太严格,程序设计自由度大。“限制”与“灵活”是对立的,强调“灵活”就会放松“限制”。这就对使用 C语言进行编程提出了更高的要求,程序员要对程序设计更熟悉。例如, C语言对数组下标越界不检查,容易造成数据在内存中的混乱。
(2)C语言具有丰富的运算符,多达 34种。丰富的数据类型与丰富的运算符相结合,使 C语言具有表达灵活和效率高等特点。然而,这却增加了使用 C语言的难度,这些运算符分为众多优先级,不容易记忆,可能混淆而产生错误。
(3)C语言存在着一些不应该存在的语法限制。例如, switch语句由 case结构组成,每个 case结束之后都要使用一个 break来跳出 case结构,否则将会继续执行下面的 case,这样就会造成错误。
(4)C语言中许多运算符被“重载”,具有不同的意义,甚至有些关键字也具有好几种意义。例如, void作为函数的返回类型,表示不返回任何值;在指针声明中,表示通用指针类型;在参数列表中,表示没有参数。