UTNianos

Versión completa: [SSL] resumen de C
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
La parte de C que yo estudie para el final fue:

Resumen del libro de C
[attachment=14590]

El apunte de bruno de C
https://droscarbruno.wordpress.com/s-s-l...lenguajes/

En este ultimo esta la sintaxis, que como vimos.. en el segundo final de dic tomaron!

Pueden ejecutar cualquier cosa de C que les de duda si se puede en:
http://ideone.com

En los ejercicios de clasificar los lexemas para ver a que token pertenecen, como ya saben hay algunos que son caracter de puntuacion y operadores segun el contexto. Como sabemos cuando es cual? Bueno, ellos nos van a dar las clasificaciones, asi que no hay que preocuparse por eso... solamente en el libro se presenta esa posibilidad. Y abajo deje algunos casos para que sepan. Pero es solo para justificar algunas cosas, solo para curiosos

Algunas cosas interesantes que saque del grupo de yahoo respuestas, respondido por el profe Sola
Spoiler: Mostrar
4) ¿La asignación en Pascal y la expresión de asignación en ANSI C,
> tienen la misma semántica? Pagina 72. Libro 1. Ejercicio 15.
> En Pascal, a := 3 ya es una sentencia.
> En ANSI C, a = 3 es una expresión de asignación

Son diferentes desde el nivel sintáctico y semántico. La diferencia sintáctica es obvia, la semántica es que uno tiene el comportamiento de sentencia y otro de expresión.

Durante el análisis léxico, todos los identificadores, y por ende el sublenguaje de palabras reservadas, requieren leer un carácter extra para encontrar el fin del lexema (por ende todos llaman a ungetc)
delimitada apostrofos o comillas no usa ungetc
Si tiene prefijo comun como el =, +,* (u otros) necesita ungetc. Por ejemplo el "+" necesita "++" no, por que cuando lee el segundo + ya sabe que ahi termino. En cambio cuando lee el primer + le podria seguir otro + o un =

Scanner no ignora los espacios por que sino como interpreta int a; No ignora el espacio en el literal cadena ni en el literal caracter

Si el lexema es operador y también es puntuación, se lo toma como operador, si no, como puntuación.
Es así ya que la coma está separando elementos de la lista de parámetros de la función.
Sería operador cuando se la usa en una lista de expresiones, concatenándo una de otras.
En el caso de las declaraciones (y tambien en los > llamados) de funcion, actua como caracter de puntuacion,
porque esta separando los parametros.
En cambio si tenes algo asi como bar=2,3 ahi es un operador.

Aunque no ocurre lo mismo con la lista de parámetros en la definición de una función (diferente a invocación y a prototipo de una función) y con las inicializaciones (que son opcionales en algunas declaraciones).
Por ejemplo, para sentencias de selección y de iteración, no son operadores, son símbolos de puntuación que se utilizan para delimitar la expresión. ( aca explica por que con printf pone a los parentesis como operadores y dps cuando lo usas en el while, if como signos de puntuacion)

int f(int, dobule), a[MAX+1];
los corchetes del vector aca son caracter de puntuacion,
estoy declarando ese registro!
mientras que en el caso de ejecución cuando queres acceder a una
posicion del mismo, vec[1] son operador.

AFD que reconoce (a+b)*. El complemento de ese AFD
Es el L vacio osea L={} (cardinalidad 0) que no es lo mismo que L={e} (cardinalidad 1)

Sizeof Es una palabra reservada que actúa como operador.

Impecabilus, ¡muchas gracias!

=D
URLs de referencia