Me he dado cuenta en varias ocasiones al refaccionar varias piezas de código C y C++ que se usa una coma en lugar de un punto y coma para separar las declaraciones . Algo como esto;Efecto de usar una coma en lugar de un punto y coma en C y C++
int a = 0, b = 0;
a = 5, b = 5;
Cuando yo habría esperado
int a = 0, b = 0;
a = 5; b = 5;
Sé que C y C++ permiten el uso de comas para separar las declaraciones (en particular los encabezados de asa), pero ¿cuál es la diferencia si los hay entre estas dos piezas de ¿código? Mi suposición es que la coma se ha dejado como resultado de cortar & pegando, pero ¿es un error y afecta la ejecución?
Vale la pena mencionar que el "operador de coma" en la segunda línea es semánticamente diferente de la coma que delimita las expresiones de inicialización en 'int a = 0, b = 0;'. –
También existe este problema con el operador de coma en el sentido de que 'int * a, b;' no es lo mismo que 'int * a; int * b; ' – JPvdMerwe
Es por eso que siempre pongo el puntero/modificador de referencia junto a la variable, no el tipo. 'int * a, b;' – mskfisher