不安全:C的指针操作不做保护,这样的粗暴手段会把安全因素破坏掉从而获得本来不应该获得的东西。比如常见的溢出和越界错误,就是C程序侵犯操作系统的保护领域时被踢出的表现。同时C不能够自动做边界检查,这在一定程度上提高了效率,但同时带来了安全隐患。Strcpy()、strcat()、sprintf()、getchar()、gets()等就是典型的不安全库函数。
不严谨:C的数据类型支持不完整,字符型和整型混用,浮点型和整型直接进行计算不会报错,仅仅只是个warning,常常会因此丢失精度。这就导致程序产生漏洞,难以发现错误。这也在一定程度上导致了C的不安全。