Latest web development tutorials

C Abgüsse

Abgüsse wird die Variable von einem Typ in einen anderen Datentyp umgewandelt. Zum Beispiel, wenn Sie den Wert eines langen Art auf eine einfache ganze Zahl speichern möchten, müssen Sie lange gegossen Typ auf den Typ int. Sie können dieCast - Operatorverwenden explizit Werte in eine andere Art von einem Typ zu setzen, wie folgt:

(type_name) expression

Betrachten Sie die folgenden Beispiele, die Verwendung von Wandlungspflicht Betreiber einer Integer-Variable von einer anderen Integer-Variable, erhalten eine float:

#include <stdio.h>

main()
{
   int sum = 17, count = 5;
   double mean;

   mean = (double) sum / count;
   printf("Value of mean : %f\n", mean );

}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

Value of mean : 3.400000

Um hier zu beachten ist der Cast - Operator Vorrang vor der Teilung erfolgt, so dass der Wert derSumme wird erst in einem doppelten,dann teilen Sie zählen, einen Wert des Typs doppelt erhalten.

Typumwandlungen können implizit sein, erfolgt automatisch durch den Compiler, kann es explizit sein, spezifiziert durch denCast - Operator verwenden.Bei der Programmierung gibt es einen Bedarf Zeit Typumwandlung Cast-Operator zu verbringen, ist eine gute Programmierpraxis.

Integral Förderung

Bezieht sich auf die ganzheitliche Förderung kleiner alsint oder unsigned intInteger - Typ umgewandelt wird inintoderunsigned intProzess. Betrachten Sie das folgende Beispiel, fügen Sie ein Zeichen in einem int:

#include <stdio.h>

main()
{
   int  i = 17;
   char c = 'c'; /* ascii 值是 99 */
   int sum;

   sum = i + c;
   printf("Value of sum : %d\n", sum );

}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

Value of sum : 116

Hier Summe aus dem Wert 116, weil der Compiler ganzheitliche Förderung gewesen, wenn die tatsächliche Additionsoperation durchgeführt wird, die 'c' umgewandelt Wert auf den entsprechenden ASCII-Wert.

Übliche arithmetische Umwandlungen

Übliche arithmetische Umwandlungen werden auf den Wert des gleichen Typs implizit gegossen.Der Compiler führt ersteGanzzahl heben, wenn die Operanden von verschiedenen Arten, sie zu folgender Hierarchie umgewandelt erscheint höchstem Niveau Typ:

Übliche Arithmetic Conversion

Übliche arithmetische Umwandlungen gelten nicht für den Zuweisungsoperator, logischen Operatoren && und ||. Schauen wir uns die folgenden Beispiele betrachten dieses Konzept zu verstehen:

#include <stdio.h>

main()
{
   int  i = 17;
   char c = 'c'; /* ascii 值是 99 */
   float sum;

   sum = i + c;
   printf("Value of sum : %f\n", sum );

}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

Value of sum : 116.000000

Dabei ist c zunächst in eine ganze Zahl umgewandelt, aber aufgrund der letzte Wert vom Typ double, so dass die üblichen arithmetischen Umwandlungen angewendet werden, wird der Compiler i und c wird umgewandelt zu schweben, und legte sie zusammen, um eine Fließkommazahl zu erhalten .