UTNianos

Versión completa: [Duda] para que se usa el ampersand (&)
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola, como andan ?
Mi consulta es para que se usa el ampersand (&) y en que caso, yo estoy cursando con Ferrari primer año, por lo tanto lo vimos en diagramas de flujo, lo que se es que tiene que ver con que usa los mismos parametros tanto para entrada como para salida, pero no entiendo bien en que momentos se usa, si pueden decirme con algun ejemplo basico o sencillo que se vea el porque se usa.
Muchas gracias, Suerte.
Saludos.
Se usa como condicion.... la condicion seria "Y", es decir si te digo pasame la birome azul & pasame la birome roja, seria que tenes que hacer las 2 cosas para que se cumpla. Se suelen usar con el if y se ponen doble ampersand.

if( algo1 && algo2)
{Hago lo que pongo aca}

esto lo que indica es "si pasa algo1 y algo2 hago lo que este entre las llaves" (se deben dar ambas cosas)
Hola! Buenas noches! El ampersand (&) se usa para indicar que pasas a una función o que almacenas en una variable puntero la dirección en memoria de una variable.
Por ej:

int a=20; //valor de a 20, dirección en memoria 0xff
int *p = &a; //guardo en p (puntero a entero) la dirección en memoria de a, se guardo 0xff.

Cuando envías la dirección en memoria de una variable a una función, la misma tiene el acceso para modificar el contenido de la misma (pasaje por referencia), cosa que no es posible al realizar el pasaje por valor.

El && (doble ampersand) como dijeron arriba, sirve como operador lógico AND para establecer una condición.

Saludos!
El & solo sirve para pasar los parametros por referencia o por copia. Si vos pones

int resultado = funcion_que_da_resultado(&algo);

estas pasandole la direccion de memoria donde esta "algo". Entonces del otro lado tenes que recibirlo sabiendo que lo que mandas es la referencia y no un numero. Si modificas el contenido adentro de la funcion, te vuelve con ese cambio.

Si vos haces

int resultado = funcion_que_da_resultado(algo);

del otro lado recibis el valor de "algo". Aca, si lo modificas, no "vuelve" modificado porque le pasaste una copia.
La definicion exacta es que el operador & sirve para acceder a la direccion de memoria de una variable. Para el caso de if, el operador && seria el equivalente al and en c++
Bueno...
A ver me meto.. el & u operador de dirección lo que hace es devolver la dirección de la variable sobre la cual se aplica el operador este.
Por ejemplo:
Tenemos una variable en la dirección: 0x0FA (mande fruta) y de contenido: 5, luego si quiero ver en que dirección de la memoria esta esta variable podría obtenerla como: imprimir(&variable) o escrito en lenguaje c: printf("La direccion de la variable es: %d",&variable);

Ahora bien cual es la aplicación de el &?
Bueno se utiliza como por ejemplo para pasar argumentos por referencia pudiendo ser los argumentos por ejemplo: variables, vectores, estructuras.

El & va de la mano con el * mientras que el primero da la dirección de la variable el segundo da el contenido que hay en la dirección de una variable.

Entonces te dejo ejemplo:




#include <stdio.h>

int main(void){
int a=4;
int *pnt = NULL;

printf("El valor de A es: %d",a); //Acá imprimo el contenido que tengo en la variable a
printf("La direccion de A es: %d",&a); //Acá imprimo la dirección en la cual se encuentra la variable A en memoria

pnt = &a; //Como puntero es una variable que contiene una dirección de memoria lo hago "apuntar" a A pasandole su dirección.
*pnt = 5; //Acá cambio el contendio que hay en la dirección que apunta puntero, osea cambio el contenido de la variable A
printf("El valor de A es: %d",a); //Acá imprimo el contenido de A y fijate que cambia.
return(1);
}



Bueno y adriano ya te dejo lo de funciones por referencia.


Saludos!

Off-topic:
¿quien traduce los nombres en electronica? ¿operador de direccion?¿condicion de competencia?


agrego a lo que dijeron los demas: el & se llama operador de desreferencia
http://es.wikipedia.org/wiki/Operador_de_desreferencia

por otro lado, esta cosas estan todas explicadas en este libro
URLs de referencia