logo

Operador de dirección & en C

El Operador de dirección en C es un operador unario especial que devuelve la dirección de una variable. Se denota como el Símbolo comercial ( & ) . Este operador devuelve un valor entero que es el dirección de su operando en la memoria. Podemos usar el operador de dirección (&) con cualquier tipo de variables, matrices, cadenas, funciones e incluso punteros.

Sintaxis

El operador de dirección se utiliza generalmente como prefijo de su operando:



  &   operand>

dónde operando puede ser una variable, matriz, función, puntero, etc.

Operador de dirección en C

Operador de dirección en C

Ejemplos de operadores de direcciones

Ejemplo 1:

Ejemplo simple en C para demostrar cómo utilizar el operador de dirección en nuestro programa.



C

Excepción de puntero nulo






// C program to illustrate the use of address operator> #include> > int> main()> {> >// declaring a variable> >int> x = 100;> > >// printing the address of the variable> >printf>(>'The address of x is %p'>, &x);> >return> 0;> }>

>

comando cp en linux
>

Producción

The address of x is 0x7fffe8f5591c>

Explicación

Una variable X se definió e inicializó con el valor 100 en el programa anterior. Recuperamos la dirección de esta variable x usando el operador de dirección (&) como prefijo y la imprimimos usando la función printf().

Nota: El especificador de formato %p para imprimir la dirección en formato hexadecimal.

Generalmente, el valor devuelto por el operador de dirección se almacena en el puntero variable y luego se desreferencia el puntero para obtener el valor almacenado en esa dirección.

Ejemplo 2:

Usar un puntero para almacenar la dirección devuelta por el operador de dirección y luego desreferenciarla.

C




java matemáticas redondas
// C program to illustrate the use of address operator with> // pointer> #include> > int> main()> {> >// integer variable> >int> x = 1;> >// integer pointer> >int>* ptrX;> >// pointer initialization with the address of x> >ptrX = &x;> > >// accessing value of x usin pointer> >printf>(>'Value of x: %d '>, *ptrX);> > >return> 0;> }>

>

>

Producción

Value of x: 1>

Ejemplo 3:

Algunas funciones estándar como scanf() también requieren la dirección de la variable. En estos casos utilizamos el operador de dirección.

C


dependencia parcial



cadena.valorde
// C Program to illustrate the use of address operator with> // scanf()> #include> > int> main()> {> >// defining variable> >int> number;> > >printf>(>'Enter any number: '>);> >// using adress operator & in scanf() to get the value> >// entered by the user in the console> >scanf>(>'%d'>, &number);> > >// priting the entered number> >printf>(>'The entered number is: %d'>, number);> >return> 0;> }>

>

>

Producción

Enter any number: 10 The entered number is: 10>

Operador de direcciones de entidades incompatibles en C

Hay algunas entidades en C para las cuales no podemos usar el operador de dirección, es decir, no podemos obtener la dirección de esas entidades en C. Algunas de ellas son:

  1. Registrar variables
  2. Campos de bits
  3. Literales
  4. Expresiones

Aplicaciones del Operador de Direcciones (&):

El operador de dirección (&) se usa ampliamente en programas C para obtener las direcciones de diferentes entidades. Algunas de las aplicaciones principales y más comunes son:

  1. Pasar punteros como argumentos de función
  2. Aritmética de punteros
  3. Implementación de estructuras de datos