1 00:00:07,780 --> 00:00:10,540 [Powered by Google Translate] Precedencia es cómo responder a la pregunta, ¿qué operación debemos hacer primero? 2 00:00:10,540 --> 00:00:14,250 Si la solución de ecuaciones matemáticas o líneas de análisis de código informático, 3 00:00:14,250 --> 00:00:17,230 hay reglas estrictas de prioridad a los que nos adherimos 4 00:00:17,230 --> 00:00:20,270 a fin de que todos los equipos y las personas pueden obtener el mismo resultado. 5 00:00:20,270 --> 00:00:24,710 >> En primer lugar, la regla más importante para recordar, sobre todo en las pruebas de error, 6 00:00:24,710 --> 00:00:27,680 es que siempre trabajamos desde los paréntesis exteriores más íntimos. 7 00:00:27,680 --> 00:00:31,120 El uso de paréntesis adicionales puede ser una táctica útil de depuración, 8 00:00:31,120 --> 00:00:34,640 pero no es una buena práctica basura su código con paréntesis innecesarios. 9 00:00:34,640 --> 00:00:38,220 Tome el tiempo para aprender las reglas básicas del operador de precedencia. 10 00:00:38,220 --> 00:00:42,450 >> La segunda regla general es que cuando los operadores tienen PRIORITARIAS iguales, 11 00:00:42,450 --> 00:00:44,820 sólo tiene que resolver de izquierda a derecha. 12 00:00:44,820 --> 00:00:47,690 Cuando se trata de simples matemáticas comenzamos con paréntesis, 13 00:00:47,690 --> 00:00:52,110 luego hacer la multiplicación y la división, y por último hacer la suma y la resta. 14 00:00:52,110 --> 00:00:54,400 La multiplicación y la división tienen la misma prioridad, 15 00:00:54,400 --> 00:00:56,870 porque son esencialmente realizando la misma operación. 16 00:00:56,870 --> 00:01:00,880 Después de todo división es simplemente multiplicando por el inverso de un valor. 17 00:01:00,880 --> 00:01:04,300 De manera similar, se resta simple adición de un valor negativo. 18 00:01:04,300 --> 00:01:06,150 >> Vamos a hacer un ejemplo. 19 00:01:14,470 --> 00:01:18,300 Siguiendo el orden de precedencia, vamos a empezar con los paréntesis. Nueve menos 1. 20 00:01:18,300 --> 00:01:23,410 Eso nos dará 8. Entonces podemos pasar a la división y la multiplicación. 21 00:01:23,410 --> 00:01:27,450 Vamos a resolver de izquierda a derecha. Así que 10 dividido por 2 es 5. 22 00:01:27,450 --> 00:01:31,290 Tenemos 5 veces 8 aquí, y eso nos dará 40. 23 00:01:33,230 --> 00:01:35,410 A continuación, pasamos a la siguiente orden de precedencia. 24 00:01:35,410 --> 00:01:38,730 Así que nos quedamos con 3 más 40 menos 1. 25 00:01:42,400 --> 00:01:43,700 Una vez más sólo la solución de izquierda a derecha, 26 00:01:43,700 --> 00:01:47,650 porque no es la misma prioridad entre la suma y la resta. 27 00:01:47,650 --> 00:01:51,510 Podemos decir 3 más 40 es 43, menos 1 es 42. Esa es nuestra respuesta. 28 00:01:53,920 --> 00:01:56,730 >> Hay 2 tipos de operadores decremento e incremento; 29 00:01:56,730 --> 00:02:01,000 La forma de prefijo, sufijo y la forma. 30 00:02:01,000 --> 00:02:06,130 La forma de sufijo, i + +, se utiliza comúnmente en los bucles, 31 00:02:06,130 --> 00:02:10,500 lo que significa que el valor actual se utiliza en la expresión, y luego se incrementa. 32 00:02:10,500 --> 00:02:14,240 Así único valor será diferente la próxima vez que se utiliza la variable. 33 00:02:14,240 --> 00:02:17,910 Por otra parte, el prefijo de incremento o decremento significa que el valor actual 34 00:02:17,910 --> 00:02:22,760 se incrementa o decrementa primero, y luego se utiliza en la expresión. 35 00:02:22,760 --> 00:02:25,310 >> Veamos un ejemplo con el entero x. 36 00:02:25,310 --> 00:02:27,220 Vamos a ponerlo igual a 5. 37 00:02:27,220 --> 00:02:36,500 Si utilizamos el operador de sufijo en él y decir x + +, x en esta línea es todavía 5. 38 00:02:36,500 --> 00:02:39,230 Si tuviéramos que imprimir obtendríamos el valor 5. 39 00:02:39,230 --> 00:02:42,540 Pero ir hacia adelante hecho x1 es igual a 6. 40 00:02:42,540 --> 00:02:48,770 Así que aquí, en esta línea x es igual a 6, y si lo imprime obtendríamos el valor 6. 41 00:02:48,770 --> 00:02:57,380 Ahora bien, si se utiliza el operador de prefijo, + + x, x se incrementa primero, y luego el valor se utiliza. 42 00:02:57,380 --> 00:03:00,110 Así que es igual a 7 en esta línea. 43 00:03:00,110 --> 00:03:04,750 Incremento de curso de 6 a 7, y si tuviéramos que imprimir obtendríamos el valor 7. 44 00:03:04,750 --> 00:03:09,160 >> El matiz último en precedencia que vamos a ver ocupa de notación puntero. 45 00:03:09,160 --> 00:03:15,050 El operador de indirección, estrella, tiene prioridad sobre los operadores matemáticos básicos, 46 00:03:15,050 --> 00:03:18,550 pero no en la incement sufijo y los operadores de decremento. 47 00:03:18,550 --> 00:03:20,690 Esto nos lleva a nuestro último ejemplo. 48 00:03:20,690 --> 00:03:24,500 Tomemos el entero x y ponerlo igual a 7. 49 00:03:24,500 --> 00:03:30,540 También vamos a hacer una y puntero y lo puso igual a la dirección de x. 50 00:03:30,540 --> 00:03:34,920 Así que cuando y eliminar la referencia que debemos obtener el valor 7. 51 00:03:34,920 --> 00:03:39,380 Ahora, en esta línea de código, tenemos una situación un tanto ambigua. 52 00:03:39,380 --> 00:03:44,310 Estamos dereferencing y primero, y luego incrementar el valor 7? 53 00:03:44,310 --> 00:03:48,300 ¿O estamos incrementando el puntero y luego dereferencing él? 54 00:03:48,300 --> 00:03:52,800 De hecho, debido a que el operador de incremento sufijo tiene prioridad sobre 55 00:03:52,800 --> 00:03:55,370 el operador de indirección, estamos tratando de incrementar el puntero y, 56 00:03:55,370 --> 00:03:59,170 que mover el puntero por el tamaño de bytes int. 57 00:03:59,170 --> 00:04:03,040 Esencialmente nos da una dirección en algún momento completamente diferente en la memoria, 58 00:04:03,040 --> 00:04:05,010 y entonces lo estamos eliminación de referencias. 59 00:04:05,010 --> 00:04:07,350 Así que esta es la línea de muy sentido. 60 00:04:07,350 --> 00:04:10,250 Si realmente quería incrementar el valor de 7, 61 00:04:10,250 --> 00:04:14,260 tendríamos que poner el operador para deshacer referencias con y entre paréntesis. 62 00:04:14,260 --> 00:04:17,290 Entonces podríamos incrementarlo. 63 00:04:17,290 --> 00:04:21,089 Así que mientras no nos incrementando el valor de x con la segunda a la última línea de código, 64 00:04:21,089 --> 00:04:23,380 en la última línea de código que haría y de hecho dereference 65 00:04:23,380 --> 00:04:26,380 para obtener el valor de x e incrementar eso. 66 00:04:26,380 --> 00:04:29,540 Nos quedaríamos con el valor de x es igual a 8. 67 00:04:31,580 --> 00:04:33,580 >> He aquí un resumen rápido de las reglas de precedencia que hemos hablado. 68 00:04:33,580 --> 00:04:37,210 Vamos a empezar con los paréntesis más internos y trabajar hacia fuera. 69 00:04:37,210 --> 00:04:41,210 Luego pasamos a los operadores de sufijo como i + + o i -. 70 00:04:41,210 --> 00:04:45,920 A continuación, eliminar la referencia y la dirección de los operadores como estrella xo x ampersand, 71 00:04:45,920 --> 00:04:50,260 y los operadores de prefijo, como i + + o - i. 72 00:04:50,260 --> 00:04:54,920 Por último hacemos las operaciones matemáticas sencillas, como la multiplicación, división, modulo. 73 00:04:54,920 --> 00:04:58,400 Entonces la suma, resta. 74 00:04:58,400 --> 00:05:02,170 Es precedencia. Soy Jordan Jozwiak, y esto es CS50. 75 00:05:04,160 --> 00:05:10,480 Haremos dereference y utilice la dirección y - cómo hacer que la frase? 76 00:05:12,380 --> 00:05:13,190 Ya he terminado. Bien.