So führen Sie eine erzwungene Typkonvertierung in der C-Sprache durch

青灯夜游
Freigeben: 2023-01-04 11:04:03
Original
7277 Leute haben es durchsucht

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.

So führen Sie eine erzwungene Typkonvertierung in der C-Sprache durch

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
Nach dem Login kopieren
  • type_nameist der neue Typnametype_name为新类型名称

  • expression

expressionist der Ausdruck

Zum Beispiel:

(float) a; //将变量 a 转换为 float 类型 (int)(x+y); //把表达式 x+y 的结果转换为 int 整型 (float) 100; //将数值 100(默认为int类型)转换为 float 类型
Nach dem Login kopieren
So führen Sie eine erzwungene Typkonvertierung in der C-Sprache durchBitte schauen Sie sich das folgende Beispiel an, in dem der Umwandlungsoperator verwendet wird, um eine Ganzzahlvariable durch eine andere Ganzzahlvariable zu dividieren, um eine Gleitkommazahl zu erhalten:

#include  int main() { int sum = 17, count = 5; double mean; mean = (double) sum / count; printf("Value of mean : %f\n", mean ); }
Nach dem Login kopieren

Hier ist zu beachten, dass der Umwandlungsoperator eine höhere Priorität hat als DivisionDaher wird der Wert von sum zunächst in den Typ double konvertiert und dann durch count dividiert, was zu einem Wert vom Typ double führt.

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übergehend

So führen Sie eine erzwungene Typkonvertierung in der C-Sprache durchUnabhä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:

#include  int 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; }
Nach dem Login kopieren

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 Konvertierungen

So führen Sie eine erzwungene Typkonvertierung in der C-Sprache durchHä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:

#include  int main() { int i = 17; char c = 'c'; /* ascii 值是 99 */ float sum; sum = i + c; printf("Value of sum : %f\n", sum ); }
Nach dem Login kopieren

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er das folgende Ergebnis:

Value of sum : 116.000000
Nach dem Login kopieren
Hier wird c zunächst in eine Ganzzahl konvertiert, da der Endwert jedoch vom Typ Float ist Daher werden die üblichen arithmetischen Konvertierungen angewendet. Der Compiler konvertiert i und c in Gleitkommatypen und addiert sie, um eine Gleitkommazahl zu erhalten. 【Verwandte Empfehlungen:Video-Tutorial in C-Sprache, Programmierunterricht】

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!