C jest uważane za statycznie typowane (nie możesz zmienić zmiennej z int na float). Po zadeklarowaniu zmiennej utknie w ten sposób.
Ale jest uważany za słabo wpisany, ponieważ typy można przerzucić na flopie.
Co to jest 0? '\ 0', FALSE, 0.0 itd.
w wielu językach nie można powiedzieć JEŻELI (zmienna), ponieważ warunki będą przyjmować tylko wartości logiczne z wyrażeń boolowskich. Te są silniej wpisane. To samo dotyczy przechodzenia między znakami i liczbami całkowitymi.
zasadniczo c ma dwa główne proste typy danych, liczby całkowite i liczby zmiennoprzecinkowe (choć z różnymi dokładnościami). Wszystkie inne wartości logiczne, wyliczenia (nie proste, ale pasujące) itp. Są zaimplementowane jako jedne z nich. Nawet znaki są w zasadzie liczbami całkowitymi.
Porównaj z innymi językami, w których istnieją typy ciągów, typy wyliczeniowe, które można przypisać tylko do zdefiniowanych wartości, typy logiczne, w których można używać tylko wyrażeń generujących wartości logiczne lub prawda / fałsz.
Ale można argumentować, że w porównaniu do Perl C jest silnie wpisany. Jest to więc jeden z tych słynnych argumentów (vi vs emacs, linux vs windows, itp.). C # jest silniejszym typem niż C. Zasadniczo można dyskutować w obie strony. Twoje odpowiedzi prawdopodobnie pójdą w obie strony :) Również w niektórych podręcznikach / stronach internetowych będzie napisane, że C jest napisane słabo, a inne powiedzą, że C jest napisane silnie. Jeśli przejdziesz do wikipedii, wpis w C mówi „częściowo słabe pisanie”. Powiedziałbym, że w porównaniu do Pythona C jest napisany słabo. Więc Python / C #, C, Perl na kontinuum.