Dos puntos (:) en C

ganimo
03 de Mayo del 2004
Hola. ¿Alguien me puede decir para qué sirven los dos puntos (:) y algo sobre su uso? También me interesaría alguna referencia de web o libro que hable sobre ello. Muchas gracias.

Alejandro_
03 de Mayo del 2004
También los dos puntos se usan como indicación de una "label" en una sentencia "goto" (Sí, la denodada goto, también en C++!). Aunque tenga tan mala prensa, suele ser muy útil en algunos casos, por ejemplo, cuando es necesario salir rápidamente de varios ciclos anidados.

Ésta situación es una de las pocas donde se justifica:

for(int i=0; i<imax; ++i) {
for(int j=0; j<jmax; ++j) {
for(k=... ...
if(ciertaCondición) goto salida;
... ... ... ..
}}}}}}}}}} // muchos ciclos anidados.

// siertaCondición no se cumplió nunca
// más código...
return;

salida: // dos puntos después de la label" salida"
// cierta condición sí se cumplió:
hacerAlgo();
return;

// Alejandro




noel solw
03 de Mayo del 2004
Otro uso para los dos puntitos, la formar abreviada de if-else :

z = (a > b) ? a : b; // z recibe el maximo entre a y b

noel solw
03 de Mayo del 2004
No se si me acuerdo de todos, pero los dos puntos
(:) cumplen diferente papeles en C.

[1] - en la orden switch, para ligar los diferentes casos.
Por ejemplo

switch(x)
{

}

noel solw
03 de Mayo del 2004
continuo con switch

switch(x)
{
case 1 : .....
break;
case 2 : ....
break;
default :......
}

[2] - para las etiquetas, "labels"

goto error;
.....
....
....
error : ........


[3] - cuatros puntitos (::) para asignar variables o funciones a una estructura o clase.

class X
{
int F(int,int); // declaracion de la funcion
}

int X::F(int a,int b) // definicion
{

}

[4] - dentro de clase o estructuras para delimitar las declaraciones
public:
private:

[5] - supongo que habran mas usos de los dos puntitos. En lo que respecta a libros, el unico que puedo recomnedarte no se si esta en castellano :
Teach Yourself Object Oriented Programming with
Turbo C++ in 21 days, by Greg Perry, editorial Sams