C è considerato tipizzato staticamente (non è possibile modificare la variabile da int a float). Una volta che una variabile è stata dichiarata, viene bloccata in questo modo.
Ma è considerato debolmente tipizzato perché i tipi possono essere flip flop.
Cos'è 0? "\ 0", FALSE, 0.0 e così via.
in molte lingue non è possibile dire IF (variabile) perché le condizioni prenderanno solo valori booleani da espressioni booleane. Questi sono tipizzati più fortemente. Lo stesso vale per il passaggio tra caratteri e numeri interi.
fondamentalmente c ha due principali tipi di dati semplici, interi e numeri in virgola mobile (sebbene varie precisioni). Tutto il resto booleane, enumerazioni (non semplici ma adatte), ecc. Sono implementati come uno di questi. Anche i caratteri sono fondamentalmente numeri interi.
Confronta con altri linguaggi in cui sono presenti tipi stringa, tipi enum che possono essere assegnati solo ai valori definiti, tipi booleani in cui possono essere utilizzate solo espressioni che generano booleani o vero / falso.
Ma si può sostenere che rispetto a Perl C è fortemente tipizzato. Quindi è uno di quei famosi argomenti (vi vs emacs, linux vs windows, ecc.). C # è un tipo più forte di C. Fondamentalmente puoi discutere in entrambi i modi. E le tue risposte probabilmente andranno in entrambe le direzioni :) Inoltre alcuni libri di testo / pagine web diranno che C è digitato in modo debole, e alcuni diranno che C è fortemente digitato. Se vai su wikipedia la voce C dice "tipizzazione parzialmente debole". Direi che rispetto a Python C è debolmente tipizzato. Quindi Python / C #, C, Perl sul continuum.