Maison  >  Article  >  développement back-end  >  Comment effectuer une conversion de type forcée en langage C

Comment effectuer une conversion de type forcée en langage C

青灯夜游
青灯夜游original
2023-01-04 11:04:037364parcourir

En langage C, la conversion de type forcée peut être effectuée via l'instruction "(type_name) expression". Le paramètre "type_name" représente le nom du nouveau type. Par exemple, "(float)100" convertit la valeur de type int 100. au type flotteur. La conversion de type forcée est une conversion de type explicitement proposée par le programmeur et qui doit être spécifiée via du code dans un format spécifique. Lors de la programmation, c'est une bonne habitude de programmation d'utiliser l'opérateur de conversion de type forcée chaque fois qu'une conversion de type est nécessaire.

Comment effectuer une conversion de type forcée en langage C

L'environnement d'exploitation de ce tutoriel : système Windows 7, version c99, ordinateur Dell G3.

La conversion de type de données consiste à convertir des données (variables, valeurs, résultats d'expressions, etc.) d'un type à un autre type.

Le langage C dispose de deux méthodes de type de données :

  • Conversion de type automatique : il s'agit d'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 et se fera automatiquement.

  • Conversion de type forcée

Examinons en détail la conversion de type forcée en langage C.

Conversion de type forcée

La conversion de type automatique est le résultat du propre jugement du compilateur basé sur le contexte du code. Parfois, elle n'est pas si "intelligente" et ne peut pas répondre à tous les besoins. Si nécessaire, les programmeurs peuvent également proposer explicitement une conversion de type dans le code eux-mêmes, appelée conversion de type forcée.

La conversion de type automatique est une conversion de type effectuée silencieusement et implicitement par le compilateur et n'a pas besoin d'être reflétée dans le code ; la conversion de type forcée est une conversion de type explicitement proposée par le programmeur et doit être spécifiée via un format de code spécifique. Conversion de types. En d’autres termes, la conversion de type automatique ne nécessite pas l’intervention du programmeur, tandis que la conversion de type obligatoire nécessite l’intervention du programmeur.

Le format de la conversion de type forcée est :

(type_name) expression
  • type_name est le nouveau nom du type type_name为新类型名称

  • expression

expression est l'expression

Par exemple :

(float) a;  //将变量 a 转换为 float 类型
(int)(x+y);  //把表达式 x+y 的结果转换为 int 整型
(float) 100;  //将数值 100(默认为int类型)转换为 float 类型
Comment effectuer une conversion de type forcée en langage C Veuillez regarder l'exemple suivant, en utilisant l'opérateur de conversion pour diviser une variable entière par une autre variable entière afin d'obtenir un nombre à virgule flottante :

#include <stdio.h>
 
int main()
{
   int sum = 17, count = 5;
   double mean;
 
   mean = (double) sum / count;
   printf("Value of mean : %f\n", mean );
 
}

Il convient de noter ici que l'opérateur de conversion a une priorité plus élevée que division, Par conséquent, la valeur de sum est d'abord convertie en type double, puis divisée par nombre, ce qui donne une valeur de type double.

La conversion de type peut être implicite, effectuée automatiquement par le compilateur, ou explicite, spécifiée à l'aide de l'opérateur cast. Lors de la programmation, c'est une bonne habitude de programmation d'utiliser l'opérateur de conversion chaque fois qu'une conversion de type est nécessaire.

La conversion de type n'est que temporaire

Comment effectuer une conversion de type forcée en langage CQu'il s'agisse d'une conversion de type automatique ou d'une conversion de type forcée, il ne s'agit que d'une conversion temporaire pour cette opération, et le résultat de la conversion sera également enregistré dans l'espace mémoire temporaire. le type ou la valeur d’origine des données. Veuillez regarder l'exemple suivant :

#include <stdio.h>
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;
}

Notez la 6ème ligne de code. La variable total est convertie en type int avant d'être affectée à la variable total_int. Cette conversion n'affecte pas le type et la valeur de la variable total elle-même. . Si la valeur du total change, alors le résultat de sortie du total deviendra 400,000000 ; si le type de total change, alors le résultat de sortie de l'unité deviendra 80,000000 ;

Connaissances approfondies : conversions arithmétiques couramment utilisées

Comment effectuer une conversion de type forcée en langage CLes conversions arithmétiques couramment utilisées forcent implicitement les valeurs au même type. Le compilateur effectue d'abord la promotion des entiers, et si les types d'opérandes sont différents, ils sont convertis au type de niveau le plus élevé apparaissant dans la hiérarchie suivante :

Les conversions arithmétiques courantes ne s'appliquent pas à l'opérateur d'affectation, aux opérateurs logiques && et | |. Voyons l'exemple suivant pour comprendre ce concept :

#include <stdio.h>
 
int main()
{
   int  i = 17;
   char c = &#39;c&#39;; /* 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 le résultat suivant :

Value of sum : 116.000000
Ici, c est d'abord converti en entier, mais comme la valeur finale est de type float , donc les conversions arithmétiques habituelles seront appliquées, le compilateur convertira i et c en types à virgule flottante et les ajoutera pour obtenir un nombre à virgule flottante. 【Recommandations associées : Tutoriel vidéo sur le langage C

, 🎜Enseignement de la programmation🎜】🎜

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn