Variables C


Une variable est en fait simplement le nom de la zone de stockage que le programme peut exploiter. Chaque variable en C a un type spécifique. Le type détermine la taille et la disposition du stockage de la variable. Les valeurs comprises dans cette plage peuvent être stockées en mémoire et les opérateurs peuvent être appliqués à la variable.

Les noms de variables peuvent être composés de lettres, de chiffres et de caractères de soulignement. Il doit commencer par une lettre ou un trait de soulignement. Les lettres majuscules et minuscules sont différentes car C est sensible à la casse. Sur la base des types de base expliqués dans le chapitre précédent, il existe les types de variables de base suivants :

类型描述
char通常是一个八位字节(一个字节)。这是一个整数类型。
int对机器而言,整数的最自然的大小。
float单精度浮点值。
double双精度浮点值。
void表示类型的缺失。

Le langage C permet également de définir divers autres types de variables, telles que des énumérations, des pointeurs, des tableaux, des structures, des unions, etc. Cela sera expliqué dans les chapitres suivants. Dans ce chapitre, nous expliquerons d'abord les bases. Type variable.

Définition de variable en C

La définition de variable indique au compilateur où créer un stockage de variables et comment créer un stockage de variables. Une définition de variable spécifie un type de données et contient une liste d'une ou plusieurs variables de ce type, comme suit :

type variable_list;

Ici, type doit être un type de données C valide, peut être char , w_char, int, float, double, bool ou tout objet défini par l'utilisateur, variable_list peut être constitué d'un ou plusieurs noms d'identifiant, et plusieurs identifiants sont séparés par des virgules. Plusieurs déclarations valides sont répertoriées ci-dessous :

int    i, j, k;char   c, ch;float  f, salary;double d;

line int i, j, k déclare et définit les variables i, j et k, qui demandent au compilateur de créer une variable int nommée i. , j, k.

Les variables peuvent être initialisées (spécifiées avec une valeur initiale) lorsqu'elles sont déclarées. Un initialiseur est constitué d'un signe égal suivi d'une expression constante, comme indiqué ci-dessous :

type variable_name = value;

Voici quelques exemples :

extern int d = 3, f = 5;    // d 和 f 的声明, 这就是单纯的声明int d = 3, f = 5;           // 定义并初始化 d 和 fbyte z = 22;                // 定义并初始化 zchar x = 'x';               // 变量 x 的值为 'x'

Définition sans initialisation : avec une durée de stockage statique, les variables seront implicitement initialisées à NULL (la valeur de tous les octets est 0) et la valeur initiale de toutes les autres variables n'est pas définie.

Déclaration de variable en C

Une déclaration de variable garantit au compilateur que la variable existe avec le type et le nom spécifiés, afin que le compilateur puisse continuer sans connaître tous les détails de la variable. Les déclarations de variables n'ont de signification qu'au moment de la compilation ; le compilateur nécessite les déclarations de variables réelles lorsque le programme est lié.

Il existe deux situations pour la déclaration des variables :

  • 1 L'une nécessite la création d'un espace de stockage. Par exemple : int a a déjà créé un espace de stockage lors de sa déclaration.

  • 2. L'autre est qu'il n'est pas nécessaire de créer de l'espace de stockage, en utilisant le mot-clé extern pour déclarer le nom de la variable sans le définir. Par exemple : extern int a où la variable a peut être définie dans d'autres fichiers.

  • À moins qu'il n'y ait le mot-clé extern, ce sont toutes des définitions de variables.

extern int i; //声明,不是定义int i; //声明,也是定义

Exemple

Essayez l'exemple suivant, dans lequel les variables ont été déclarées dans l'en-tête, mais sont définies et initialisées dans la fonction principale :

#include <stdio.h>// 变量声明extern int a, b;extern int c;extern float f;int main (){  /* 变量定义 */  int a, b;  int c;  float f; 
  /* 初始化 */
  a = 10;
  b = 20;
  
  c = a + b;
  printf("value of c : %d \n", c);

  f = 70.0/3.0;
  printf("value of f : %f \n", f); 
  return 0;}

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

value of c : 30value of f : 23.333334

Lvalues ​​​​et Rvalues ​​​​en C

Il existe deux types d'expression en C :

  1. lvalue : Une expression qui pointe vers un emplacement mémoire est appelée une expression lvalue. Une lvalue peut apparaître à gauche ou à droite du numéro d’affectation.

  2. Rvalue : Le terme rvalue fait référence à une valeur numérique stockée à une certaine adresse en mémoire. Une rvalue est une expression qui ne peut pas être affectée, c'est-à-dire qu'une rvalue peut apparaître à droite du numéro d'affectation, mais pas à gauche.

Les variables sont des valeurs l, elles peuvent donc apparaître sur le côté gauche du numéro d'affectation. Les littéraux numériques sont des rvalues, ils ne peuvent donc pas être attribués et ne peuvent pas apparaître sur le côté gauche du numéro d'affectation. Ce qui suit est une déclaration valide :

int g = 20;

Mais ce qui suit n'est pas une instruction valide et générera une erreur de compilation :

10 = 20;