Coloquialmente, los lenguajes de programación se suelen clasificar en débilmente y fuertemente tipificados. Podemos decir que los lenguajes son fuertemente tipificados cuando se requiere que los argumentos de una función u operación coincidan con la definición de la última al momento de querer compilar (o interpretar) el código escrito.
Bajo este contexto, podemos argumentas que el lenguaje C tiene una tipificación débil, ya que aunque requiere una declaración de tipo para todas las variables, podemos operar con distintos tipos de memoria sin realizar una transformación de tipo de memoria por medio de punteros. Esta característica tiene sus ventajas y desventajas.
Es importante señalar que no existe un consenso con respecto a la caracterización dada expresa mi opinión sobre el lenguaje.