In der C-Sprache können Sie eine erzwungene Typkonvertierung über die Anweisung „(type_name) expression“ durchführen. Der Parameter „type_name“ stellt beispielsweise den Namen des neuen Typs dar. „(float)100“ konvertiert den int-Typwert 100 zum Float-Typ. Die erzwungene Typkonvertierung ist eine vom Programmierer explizit vorgeschlagene Typkonvertierung, die durch Code in einem bestimmten Format angegeben werden muss. Beim Programmieren ist es eine gute Programmiergewohnheit, den erzwungenen Typkonvertierungsoperator zu verwenden, wann immer eine Typkonvertierung erforderlich ist.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, c99-Version, Dell G3-Computer.
Bei der Datentypkonvertierung werden Daten (Variablen, Werte, Ergebnisse von Ausdrücken usw.) von einem Typ in einen anderen Typ konvertiert.
Die C-Sprache verfügt über zwei Datentypmethoden:
Automatische Typkonvertierung: Es handelt sich um eine Datentypkonvertierung, die stillschweigend, implizit und heimlich vom Compiler durchgeführt wird. Diese Konvertierung erfordert kein Eingreifen des Programmierers und erfolgt automatisch.
Erzwungene Typkonvertierung
Werfen wir einen detaillierten Blick auf die erzwungene Typkonvertierung in der C-Sprache.
Erzwungene Typkonvertierung
Die automatische Typkonvertierung ist das Ergebnis der eigenen Beurteilung des Compilers basierend auf dem Kontext des Codes. Manchmal ist sie nicht so „intelligent“ und kann nicht alle Anforderungen erfüllen. Bei Bedarf können Programmierer auch explizit eine Typkonvertierung im Code selbst vorschlagen, was als erzwungene Typkonvertierung bezeichnet wird.
Die automatische Typkonvertierung ist eine vom Compiler stillschweigend und implizit durchgeführte Typkonvertierung, die sich nicht im Code widerspiegeln muss. Die erzwungene Typkonvertierung ist eine vom Programmierer explizit vorgeschlagene Typkonvertierung, die über ein bestimmtes Codeformat angegeben werden muss Typkonvertierung. Mit anderen Worten: Die automatische Typkonvertierung erfordert kein Eingreifen des Programmierers, während die erzwungene Typkonvertierung ein Eingreifen des Programmierers erfordert.
Das Format der erzwungenen Typkonvertierung ist:
(type_name) expression
type_name
ist der neue Typnametype_name
为新类型名称
expression
expression
ist der Ausdruck
Zum Beispiel:
(float) a; //将变量 a 转换为 float 类型 (int)(x+y); //把表达式 x+y 的结果转换为 int 整型 (float) 100; //将数值 100(默认为int类型)转换为 float 类型
#includeint main() { int sum = 17, count = 5; double mean; mean = (double) sum / count; printf("Value of mean : %f\n", mean ); }
Die Typkonvertierung kann implizit erfolgen, automatisch vom Compiler durchgeführt oder explizit mithilfe des Cast-Operators angegeben werden. Beim Programmieren ist es eine gute Programmiergewohnheit, den Umwandlungsoperator immer dann zu verwenden, wenn eine Typkonvertierung erforderlich ist.
Typkonvertierung ist nur vorübergehendUnabhängig davon, ob es sich um eine automatische Typkonvertierung oder eine erzwungene Typkonvertierung handelt, handelt es sich bei diesem Vorgang nur um eine vorübergehende Konvertierung, und das Konvertierungsergebnis wird auch im temporären Speicherbereich gespeichert der ursprüngliche Typ oder Wert der Daten. Bitte schauen Sie sich das folgende Beispiel an:
#includeint main(){ double total = 400.8; //总价 int count = 5; //数目 double unit; //单价 int total_int = (int)total; unit = total / count; printf("total=%lf, total_int=%d, unit=%lf\n", total, total_int, unit); return 0; }
Beachten Sie, dass die Variable total in den Typ int konvertiert wird, bevor sie der Variablen total_int zugewiesen wird . Wenn sich der Wert von „total“ ändert, wird das Ausgabeergebnis von „total“ 400,000000; ändert sich der Typ von „total“, dann wird das Ausgabeergebnis von „unit“ zu 80,000000.
Erweiterte Kenntnisse: Häufig verwendete arithmetische KonvertierungenHäufig verwendete arithmetische Konvertierungen erzwingen implizit Werte in denselben Typ. Der Compiler führt zunächst eine Ganzzahlheraufstufung durch, und wenn die Operandentypen unterschiedlich sind, werden sie in den Typ der höchsten Ebene konvertiert, der in der folgenden Hierarchie vorkommt:
Übliche arithmetische Konvertierungen gelten nicht für den Zuweisungsoperator, die logischen Operatoren && und | |. Sehen wir uns das folgende Beispiel an, um dieses Konzept zu verstehen:#includeint main() { int i = 17; char c = 'c'; /* ascii 值是 99 */ float sum; sum = i + c; printf("Value of sum : %f\n", sum ); }
Value of sum : 116.000000
Das obige ist der detaillierte Inhalt vonSo führen Sie eine erzwungene Typkonvertierung in der C-Sprache durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!