Latest web development tutorials

C moulages

CASTS la variable est convertie d'un type à un autre type de données. Par exemple, si vous voulez stocker la valeur d'un type long à un nombre entier simple, vous avez besoin de type long cast taper int. Vous pouvez utiliserl'opérateur de cast de mettre explicitement les valeurs d'un type à un autre type, comme suit:

(type_name) expression

Considérons les exemples suivants, l'utilisation de l'opérateur de conversion obligatoire à une variable entière par une autre variable de type entier, obtenir un float:

#include <stdio.h>

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

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

}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:

Value of mean : 3.400000

A noter ici est l'opérateur de cast a préséance sur la division, de sorte que la valeur de lasomme est d' abord converti en un double,puis diviser compte, obtenir une valeur de type double de.

Les conversions de type peuvent être implicite, effectuée automatiquement par le compilateur, il peut être explicite, spécifiée en utilisantl'opérateur de cast.Dans la programmation, il est nécessaire de passer du temps opérateur de conversion de type coulé, est une bonne pratique de programmation.

promotion intégrale

Fait référence à la promotion intégrale est moinsint ou d'un type entier unsigned intest converti enintouunsignedprocessusint.Prenons l'exemple suivant, ajouter un caractère dans un 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 );

}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:

Value of sum : 116

Ici, la somme de la valeur 116, car le compilateur a été promotion intégrale lors de la réalisation effective de l'opération d'addition, la valeur «c» convertie en une valeur ASCII correspondant.

conversions arithmétiques habituelles

conversions arithmétiques habituelles sont implicitement exprimés à la valeur du même type.Le compilateur effectue premierentier levage, si les opérandes de types différents, ils sont convertis à la hiérarchie suivante apparaît le plus élevé Type de niveau:

Conversion Arithmétique Usual

conversions arithmétiques habituelles ne sont pas applicables à l'opérateur d'affectation, les opérateurs logiques && et ||. Regardons les exemples suivants pour comprendre ce concept:

#include <stdio.h>

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

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

}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:

Value of sum : 116.000000

Ici, c est d'abord converti en entier, mais en raison de la dernière valeur est de type double, de sorte que les conversions arithmétiques usuelles sont appliquées, le compilateur i et c est converti à flotter, et les mettre ensemble pour obtenir un nombre à virgule flottante .