Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Cuando un tipo tiene puntero en C

Estas en el tema de Cuando un tipo tiene puntero en C en el foro de C/C++ en Foros del Web. Hola, estoy estudiando los punteros en C y quería saber una cosa. He visto que a veces hay declaraciones de funciones como esta : CASO ...
  #1 (permalink)  
Antiguo 05/01/2013, 11:26
 
Fecha de Ingreso: enero-2012
Mensajes: 10
Antigüedad: 12 años, 3 meses
Puntos: 0
Cuando un tipo tiene puntero en C

Hola,

estoy estudiando los punteros en C y quería saber una cosa. He visto que a veces hay declaraciones de funciones como esta :

CASO 1 : void Funcion1(Tipo* variable) { ... }

y a veces :


CASO 2 : void Funcion1(Tipo *variable) { ... }

Cuando se utilitza una o otra? Sé que en caso 2 es cuando le paso la direccion de memoria, algo como : Funcion1(&mivariable);

Pero el caso 1? No entiendo cuando.... Gracias!
  #2 (permalink)  
Antiguo 05/01/2013, 11:36
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 3 meses
Puntos: 57
Respuesta: Cuando un tipo tiene puntero en C

No estoy muy seguro pero creo que con el primer ejemplo todas las variables que declares seran apuntadores y con el segundo ejemplo, no todas tienen que ser apuntadores

Todos apuntadores
Código C:
Ver original
  1. Tipo* var1, var2, var3

Solo la primer variable es apuntador
Código C:
Ver original
  1. Tipo *var1, var2, var3

Pero de nuevo, no estoy seguro
  #3 (permalink)  
Antiguo 05/01/2013, 12:59
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 3 meses
Puntos: 35
Respuesta: Cuando un tipo tiene puntero en C

No hay diferencia. Todas las declaraciones son válidas. Lamentablemente la descripción de @posman es incorrecta. Ejemplos:

Código C:
Ver original
  1. int* a;
  2. int * a;
  3. int *a;
Son equivalentes. Cualquiera de las tres es válida.

Código C:
Ver original
  1. int* a, b, c;
En este caso solo la variable a será un puntero a int. Por lo que b y c serán variables del tipo int.
Es por esto que es preferible y más claro pegar el asterisco (*) al nombre del identificador, y no al tipo.

  #4 (permalink)  
Antiguo 05/01/2013, 13:03
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 3 meses
Puntos: 94
Respuesta: Cuando un tipo tiene puntero en C

Cita:
Cuando se utilitza una o otra?
no hay diferencia, es lo mismo todo:
Código C:
Ver original
  1. void Funcion1(Tipo* variable);
  2. void Funcion1(Tipo *variable);
  3. void Funcion1(Tipo*variable);
  4. void Funcion1(Tipo * variable);
  5. ...........


Posman en los ejemplos que pusiste solo el primero de cada uno es un puntero. Para que todos sean punteros hay q especificar el "*"
Código C:
Ver original
  1. Tipo *var1,*var2,*var3; /* todos punteros */


SAludos
  #5 (permalink)  
Antiguo 08/01/2013, 03:27
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: Cuando un tipo tiene puntero en C

No sé de dónde se ha sacado posman eso.

Lo de situarlo en un sitio y en otro tiene que ver con la siguiente situación en la declaración de una función

Código C++:
Ver original
  1. void fun(int*)

que luego se expande como

Código C++:
Ver original
  1. void fun(int* a){
  2. ...
  3. }

Por lo que se puede tender a situarlo con respecto al tipo y no al nombre, pero técnicamente es lo mismo ya que el * está entre un tipo y la variable por lo que una lectura posicional del compilador arroja que es exactamente lo mismo.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor

Etiquetas: funcion, puntero, tipo, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:17.