Maison  >  Article  >  développement back-end  >  Qu'est-ce que l'opérateur virgule en langage C et exemples

Qu'est-ce que l'opérateur virgule en langage C et exemples

hzc
hzcoriginal
2020-07-02 11:40:057887parcourir

L'opérateur virgule signifie qu'en langage C, plusieurs expressions peuvent être séparées par des virgules. Les valeurs des expressions séparées par des virgules sont réglées séparément, mais la valeur de l'expression entière est la valeur de la dernière expression. .

Qu'est-ce que l'opérateur virgule en langage C et exemples

L'opérateur virgule signifie qu'en langage C, plusieurs expressions peuvent être séparées par des virgules, où les valeurs des expressions séparées par des virgules sont résolues , mais la valeur de l'expression entière est la valeur de la dernière expression.

Exemple :

int a1,a2,b=2,c=7,d=5; // Ligne 1

a1=(++b,c--,d+3); // Ligne 2

a2=++b,c--,d+3; // Ligne 3

Pour le code qui attribue une valeur à a1, il y a trois expressions, séparées par des virgules, donc la valeur finale doit être la valeur de la dernière expression, qui est la valeur de (d+3), qui est 8 , donc la valeur de a1 est 8.

Pour le code attribuant une valeur à a2, il existe également trois expressions. Les trois expressions à ce moment sont a2=++b, c--, d+3, (c'est parce que l'opérateur d'affectation est plus petit. que la virgule La priorité de l'opérateur est élevée) Bien que la valeur de l'expression finale soit également 8, b=4 (lorsque la deuxième ligne de code est terminée, b=3, c'est-à-dire lorsque la troisième ligne de code est exécutée, la valeur de b est 4), donc a2=4.

Remarque : l'associativité de l'opération virgule s'effectue de gauche à droite. Une fois terminée, la valeur de l'expression entière est la valeur de la dernière expression.

Exemple : int a[2],x=2,y=5;

a[0]=(x+3,y++,x++);Alors le résultat final est : a[0]=2 x=3 y=6;

Pourquoi a[0]=2 : Parce que (x++) est après l'opération Ajouter

a[1]=(x++,x+3,x+7); et le résultat final est : a[1]=10 ,x=3

Autre exemple d'associativité :

int i=24;

int n = (i++,i++,i++,i++); // n == 27

Étant donné que l'associativité de l'opérateur virgule est de gauche à droite, les quatre i++ seront exécutés dans l'ordre, mais le dernier i++ n'est utilisé qu'après l'affectation, donc 27 est finalement renvoyé.

Tutoriel recommandé : "Tutoriel langage c"

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