2017-10-24 2 views
-5

Was passiert, wenn wir eine Zeichenvariable ohne Verwendung von Hochkommata deklarieren? Zum Beispiel:Eine Zeichenvariable ohne Anführungszeichen deklarieren in C

char ch=5; 
char ch= a; 
+2

Versuchen Sie, Ihren C-Compiler oder den C-Standard zu fragen. – adrianN

+3

Das ist eine sehr schlechte Frage. Es wird erwartet, dass Sie ein Minimum an Nachforschungen über die Syntax einer Sprache gemacht haben, bevor Sie hier darüber berichten. –

+1

Die Frage zeigt nicht viel Forschungsaufwand, aber eine Antwort auf diese Frage zu finden, wäre eigentlich nicht einfach. Es gibt wahrscheinlich ein Duplikat hier bei SO, wenn jemand es findet, stimme bitte zu, um als Täter zu schließen ... – hyde

Antwort

1

In C ist char Typ nur eine ganze Zahl ist, gewöhnlich 8 Bits breit ist, mit oder ohne Vorzeichen, je nach Compilers.

"Zeichen" sind nur eine Vereinbarung darüber, was diese Zahlen bedeuten, genannt "Text-Codierung". Heute gebräuchliche 8-Bit-Textkodierungen basieren auf ASCII. Von dort können Sie überprüfen, dass Wert 5 ist nicht druckbare Kontrolle char (genannt ENQ, with historical meaning, die heute keine praktische Relevanz außer Neugier ist), und druckbare Zeichen '5' hat numerischen Wert 53 in ASCII-Codierung.


Lassen sich die beiden Zeilen Code in Ihrer Frage erklären:

char ch=5; definiert variable ch vom Typ char und initialisiert sie mit dem Wert 5, die ein Zahlenliteral ist. Es wird als solches wörtlich erkannt, weil es mit einer Zahl beginnt.

char ch= a; definiert variable ch vom Typ char und initialisiert sie mit dem Wert der Variablen a (und wenn es keine a noch definiert ist, können Sie Compiler-Fehler). a Hier ist ein Symbolname (wahrscheinlich ein Variablenname), der als solcher erkannt wird, weil er mit einem Buchstaben beginnt (der Unterstrich wäre auch in Ordnung).

Verwandte Themen