1 00:00:07,780 --> 00:00:10,540 [Powered by Google Translate] Precendence est la façon dont nous répondre à la question, quelle opération doit-on faire en premier? 2 00:00:10,540 --> 00:00:14,250 Que la résolution des équations mathématiques ou de lignes d'analyse de code informatique, 3 00:00:14,250 --> 00:00:17,230 il ya des règles strictes de priorité à laquelle nous adhérons 4 00:00:17,230 --> 00:00:20,270 de sorte que tous les ordinateurs et les gens peuvent obtenir le même résultat. 5 00:00:20,270 --> 00:00:24,710 >> Tout d'abord, la règle la plus importante à retenir, surtout dans les tests de bug, 6 00:00:24,710 --> 00:00:27,680 est que nous travaillons toujours dans les parenthèses les plus intérieures vers l'extérieur. 7 00:00:27,680 --> 00:00:31,120 L'utilisation de parenthèses supplémentaires peut être une tactique mise au point utile, 8 00:00:31,120 --> 00:00:34,640 mais ce n'est pas une bonne pratique pour la litière de votre code avec des parenthèses inutiles. 9 00:00:34,640 --> 00:00:38,220 Prenez le temps d'apprendre les règles de priorité des opérateurs de base. 10 00:00:38,220 --> 00:00:42,450 >> La deuxième règle générale est que lorsque les opérateurs ont priorty égale, 11 00:00:42,450 --> 00:00:44,820 il vous suffit de résoudre de gauche à droite. 12 00:00:44,820 --> 00:00:47,690 Lorsque vous traitez avec mathématique simple de commencer avec des parenthèses, 13 00:00:47,690 --> 00:00:52,110 puis effectuez la multiplication et la division, et enfin faire une addition et la soustraction. 14 00:00:52,110 --> 00:00:54,400 Multiplication et la division ont la même priorité, 15 00:00:54,400 --> 00:00:56,870 car ils sont essentiellement exécute la même opération. 16 00:00:56,870 --> 00:01:00,880 Après toute division est simplement en multipliant par l'inverse d'une valeur. 17 00:01:00,880 --> 00:01:04,300 De même, la soustraction est simplement l'ajout d'une valeur négative. 18 00:01:04,300 --> 00:01:06,150 >> Faisons un exemple. 19 00:01:14,470 --> 00:01:18,300 En suivant l'ordre de préséance, nous allons commencer avec les parenthèses. Neuf moins 1. 20 00:01:18,300 --> 00:01:23,410 Cela nous donnera 8. Ensuite, nous pouvons passer à la division et la multiplication. 21 00:01:23,410 --> 00:01:27,450 Nous allons résoudre de gauche à droite. Donc, 10 divisé par 2 est de 5. 22 00:01:27,450 --> 00:01:31,290 Nous avons 5 fois 8 ici, et qui nous donnera 40. 23 00:01:33,230 --> 00:01:35,410 Puis, on passe à la prochaine commande de priorité. 24 00:01:35,410 --> 00:01:38,730 Donc nous nous retrouvons avec 3 plus 40 moins 1. 25 00:01:42,400 --> 00:01:43,700 Encore une fois tout résoudre gauche à droite, 26 00:01:43,700 --> 00:01:47,650 parce qu'il ya une priorité égale entre l'addition et la soustraction. 27 00:01:47,650 --> 00:01:51,510 Nous pouvons dire 3 + 40 est de 43, moins 1 est de 42. C'est notre réponse. 28 00:01:53,920 --> 00:01:56,730 >> Il ya 2 types d'opérateurs décrémentation et incrémentation; 29 00:01:56,730 --> 00:02:01,000 La forme de préfixe et suffixe la forme. 30 00:02:01,000 --> 00:02:06,130 La forme de suffixe, i + +, est couramment utilisé dans les boucles for, 31 00:02:06,130 --> 00:02:10,500 ce qui signifie que la valeur de courant est utilisé dans l'expression, puis il est incrémenté. 32 00:02:10,500 --> 00:02:14,240 Ainsi, la valeur ne sera différente la prochaine fois que la variable est utilisée. 33 00:02:14,240 --> 00:02:17,910 D'autre part, l'incrément ou le décrément préfixe signifie que la valeur courante 34 00:02:17,910 --> 00:02:22,760 est incrémentée ou décrémentée, et ensuite il est utilisé dans l'expression. 35 00:02:22,760 --> 00:02:25,310 >> Prenons un exemple avec le nombre entier x. 36 00:02:25,310 --> 00:02:27,220 Nous allons mettre cela égal à 5. 37 00:02:27,220 --> 00:02:36,500 Si nous utilisons l'opérateur suffixe et dire x + +, x sur cette ligne est toujours 5. 38 00:02:36,500 --> 00:02:39,230 Si nous étions à l'imprimer nous obtiendrions la valeur 5. 39 00:02:39,230 --> 00:02:42,540 Mais aller de l'avant fait x1 est égal à 6. 40 00:02:42,540 --> 00:02:48,770 Donc, ici, sur cette ligne x est égal à 6, et si nous l'imprimé nous obtiendrions la valeur 6. 41 00:02:48,770 --> 00:02:57,380 Maintenant, si nous avons utilisé l'opérateur de préfixe, + + x, x est incrémenté en premier, puis la valeur est utilisée. 42 00:02:57,380 --> 00:03:00,110 Il est donc égal à 7 sur cette ligne. 43 00:03:00,110 --> 00:03:04,750 L'augmentation du cours de 6 à 7, et si nous étions à l'imprimer nous obtiendrions la valeur 7. 44 00:03:04,750 --> 00:03:09,160 >> La dernière nuance dans precendence que nous allons examiner porte sur la notation pointeur. 45 00:03:09,160 --> 00:03:15,050 L'opérateur de déréférencement, étoile, a la priorité sur les opérateurs mathématiques de base, 46 00:03:15,050 --> 00:03:18,550 mais pas sur le incement suffixe et opérateurs décrémentation. 47 00:03:18,550 --> 00:03:20,690 Ce qui nous amène à notre dernier exemple. 48 00:03:20,690 --> 00:03:24,500 Prenons l'entier x et mettez-le égal à 7. 49 00:03:24,500 --> 00:03:30,540 Nous allons également faire un pointeur et il y égale à l'adresse de x. 50 00:03:30,540 --> 00:03:34,920 De sorte que lorsque nous y déréférencer nous devrions obtenir la valeur 7. 51 00:03:34,920 --> 00:03:39,380 Or, dans cette ligne de code, nous avons une situation quelque peu ambiguë. 52 00:03:39,380 --> 00:03:44,310 Est-ce qu'on y déréférencement d'abord, puis incrémentation de la valeur 7? 53 00:03:44,310 --> 00:03:48,300 Ou sommes-nous incrémenter le pointeur, puis déréférencement? 54 00:03:48,300 --> 00:03:52,800 En fait, parce que l'opérateur d'incrémentation suffixe a préséance sur 55 00:03:52,800 --> 00:03:55,370 l'opérateur de déréférencement, nous essayons d'incrémenter le pointeur y, 56 00:03:55,370 --> 00:03:59,170 qui déplacer le pointeur de la taille des octets int. 57 00:03:59,170 --> 00:04:03,040 Essentiellement nous donnant une adresse dans un moment tout à fait différente dans la mémoire, 58 00:04:03,040 --> 00:04:05,010 puis nous le déréférencement. 59 00:04:05,010 --> 00:04:07,350 Donc, c'est très ligne vide de sens. 60 00:04:07,350 --> 00:04:10,250 Si l'on voulait vraiment augmenter la valeur de 7, 61 00:04:10,250 --> 00:04:14,260 nous devons mettre l'opérateur de déréférencement avec y entre parenthèses. 62 00:04:14,260 --> 00:04:17,290 Ensuite, nous pourrions l'incrémenter. 63 00:04:17,290 --> 00:04:21,089 Ainsi, alors que nous ne serions pas en incrémentant la valeur x de la deuxième à la dernière ligne de code, 64 00:04:21,089 --> 00:04:23,380 dans la dernière ligne de code que nous y aurait en fait déréférencer 65 00:04:23,380 --> 00:04:26,380 Pour obtenir la valeur x et que incrémenter. 66 00:04:26,380 --> 00:04:29,540 Nous serions laissé à la valeur x est égal à 8. 67 00:04:31,580 --> 00:04:33,580 >> Voici un bref résumé des règles precendence que nous avons parlé. 68 00:04:33,580 --> 00:04:37,210 Nous allons commencer par les parenthèses les plus intérieures et travailler vers l'extérieur. 69 00:04:37,210 --> 00:04:41,210 Puis, on passe aux opérateurs de suffixe comme i + + ou i -. 70 00:04:41,210 --> 00:04:45,920 Puis déréférence et l'adresse des opérateurs comme étoile x ou x esperluette, 71 00:04:45,920 --> 00:04:50,260 et les opérateurs de préfixe comme i + + ou - i. 72 00:04:50,260 --> 00:04:54,920 Enfin nous faisons les opérations mathématiques simples comme la multiplication, la division, modulo. 73 00:04:54,920 --> 00:04:58,400 Puis addition, la soustraction. 74 00:04:58,400 --> 00:05:02,170 C'est precendence. Je suis Jordan Jozwiak, et c'est CS50. 75 00:05:04,160 --> 00:05:10,480 Nous allons déréférencement et à utiliser l'adresse et - comment faites-vous une expression qui? 76 00:05:12,380 --> 00:05:13,190 Je suis fait. D'accord.