Me tropecé con un comportamiento que me sorprendió:Usando la variable recién declarada en la inicialización (int x = x + 1)?
Al escribir:
int x = x+1;
en C/C++ - programa (o incluso más compleja expresión que incluya la variable recién creada x) mi gcc/g ++ compila sin errores. En el caso anterior, X es 1 después. Tenga en cuenta que no hay una variable x en el alcance de una declaración anterior.
Así que me gustaría saber si este es el comportamiento correcto (e incluso podría ser útil en alguna situación) o simplemente una pecularidad del analizador con mi versión de gcc o gcc en general.
Por cierto: El siguiente no funciona:
int x++;
Creo que x es cada vez inicializado a 0 por gcc, pero no se puede confiar en este comportamiento que la norma no pide eso. En algunos sistemas puede dar lugar a basura. – vidit
@EdHeal: No, no he activado las advertencias y no --ansi, pero ambas no cambian la situación (no se emiten advertencias) –
Hay un uso relacionado, legal (pero inusual): 'Node simpleGraph = Node (& simpleGraph) ; 'para crear un gráfico con un nodo vinculado cíclicamente a sí mismo; O incluso más extraño, 'int x = sizeof (x);'. – MSalters