Méthode de conversion de type de données en langage C
La conversion de type de données consiste à convertir des données (variables, valeurs, expressions résultantes , etc.) d’un type à un autre.
Conversion de type automatique
La conversion de type automatique est une conversion de type de données effectuée de manière silencieuse, implicite et secrète par le compilateur. Cette conversion ne nécessite pas l'intervention du programmeur. se produire automatiquement.
1) La conversion de type automatique se produit lorsqu'un type de données est affecté à un autre type de variable. Par exemple :
float f = 100;
100 est une donnée de type int et doit être convertie en type float. être affecté à la variable f. Autre exemple :
int n = f;
f est une donnée de type float et doit être convertie en type int avant de pouvoir être affectée à la variable n.
Dans l'opération d'affectation, lorsque les types de données des deux côtés du numéro d'affectation sont différents, le type de l'expression de droite doit être converti en type de variable de gauche, ce qui peut entraîner distorsion des données ou précision réduite ; par conséquent, la conversion de saisie automatique n'est pas nécessairement sûre. Les compilateurs donnent généralement des avertissements pour les conversions de types dangereuses.
2) Dans les opérations mixtes de différents types, le compilateur convertira également automatiquement les types de données, convertissant d'abord toutes les données impliquées dans l'opération vers le même type, puis effectuera des calculs. Les règles de conversion sont les suivantes :
La conversion est effectuée dans le sens d'une longueur croissante des données pour garantir que la valeur n'est pas déformée ou que la précision n'est pas réduite. Par exemple, lorsque int et long sont impliqués dans des opérations, les données de type int sont d'abord converties en type long, puis l'opération est effectuée.
Toutes les opérations en virgule flottante sont effectuées en double précision. Même s'il n'y a que du type float dans l'opération, il doit être converti en type double avant que l'opération puisse être effectuée.
Lorsque char et short participent à des opérations, ils doivent d'abord être convertis en type int.
La figure suivante décrit cette règle de conversion de manière plus vivante :
unsigned est également unsigned int. À ce stade, vous pouvez omettre int et simplement écrire unsigned.
Exemple de conversion de type automatique :
#include<stdio.h> int main(){ float PI = 3.14159; int s1, r = 5; double s2; s1 = r * r * PI; s2 = r * r * PI; printf("s1=%d, s2=%f\n", s1, s2); return 0; }
Résultat d'exécution :
s1=78, s2=78.539749
Lors du calcul de l'expression r*r*PI, r et PI sont tous deux convertis en type double, expression The Le résultat de la formule est également de type double. Cependant, puisque s1 est un nombre entier, le résultat de l'opération d'affectation est toujours un nombre entier et la partie décimale est ignorée, ce qui entraîne une distorsion des données.
Pour plus de contenu lié à la programmation, veuillez faire attention à la colonne Introduction à la programmation sur le site Web PHP chinois !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!