Requisito previo: Punteros en C/C++
- Pregunta 1
¿Cuál será la salida?#include<stdio.h>
int
main()
{
int
a[] = { 1, 2, 3, 4, 5} ;
int
*ptr;
ptr = a;
printf
(
" %d "
, *( ptr + 1) );
return
0;
}
producción
2
Descripción:
Es posible asignar una array a un puntero. entonces, cuando ptr = a; se ejecuta la dirección del elemento a[0] se asigna a ptr y *ptr da el valor del elemento a[0]. Cuando se ejecuta *(ptr + n) se accede al valor en la ubicación n de la array. - Pregunta 2
¿Cuál será la salida?#include<stdio.h>
int
main()
{
int
a = 5;
int
*ptr ;
ptr = &a;
*ptr = *ptr * 3;
printf
(
"%d"
, a);
return
0;
}
Producción:
15
Descripción:
ptr = &a; copia la dirección de a en ptr haciendo *ptr = a y la instrucción *ptr = *ptr * 3; se puede escribir como a = a * 3; haciendo un como 15. - Pregunta 2
¿Cuál será la salida?#include<stdio.h>
int
main()
{
int
i = 6, *j, k;
j = &i;
printf
(
"%d\n"
, i * *j * i + *j);
return
0;
}
Producción:
222
Descripción:
De acuerdo con la regla BODMAS, la multiplicación tiene mayor prioridad. En la expresión i * *j * i + *j;, i * *j *i se evaluará primero y dará el resultado 216 y luego sumando *j, es decir, i = 6, la salida se convierte en 222. - Pregunta 4
¿Cuál será la salida?#include<stdio.h>
int
main()
{
int
x = 20, *y, *z;
// Assume address of x is 500 and
// integer is 4 byte size
y = &x;
z = y;
*y++;
*z++;
x++;
printf
(
"x = %d, y = %d, z = %d \n"
, x, y, z);
return
0;
}
Producción:
x=21 y=504 z=504
Descripción:
Al principio, la dirección de x se asigna a y y luego de y a z, lo que hace que y y z sean similares. cuando las variables de puntero se incrementan, se agrega valor con el tamaño de la variable, en este caso, y y z se incrementan en 4. - Pregunta 5
¿Cuál será la salida?#include<stdio.h>
int
main()
{
int
x = 10;
int
*y, **z;
y = &x;
z = &y;
printf
(
"x = %d, y = %d, z = %d\n"
, x, *y, **z);
return
0;
}
Producción:
x=10 y=10 z=10
Descripción:
*y es una variable de puntero mientras que **z es un puntero a una variable de puntero. *y da el valor en la dirección que tiene y **z busca dos veces, es decir, primero toma el valor en la dirección que tiene y luego da el valor en esa dirección.
Este artículo es una contribución de I.HARISH KUMAR sy le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA