¿Por qué necesitamos variables de referencia si tenemos punteros?

Punteros : un puntero es una variable que contiene la dirección de memoria de otra variable. Un puntero debe ser referenciado con el operador * para acceder a la ubicación de memoria a la que apunta. Referencias : una referencia se puede llamar como un puntero constante que se desreferencia implícitamente. Cuando accedemos a la … Continue reading «¿Por qué necesitamos variables de referencia si tenemos punteros?»

Expresiones de puntero en C con ejemplos

Prerrequisito: Punteros en C Los punteros se utilizan para señalar la dirección de la ubicación de una variable. Un puntero se declara precediendo el nombre del puntero por un asterisco (*) . Sintaxis: datatype *pointer_name; Cuando necesitamos inicializar un puntero con la ubicación de la variable, usamos el signo ampersand (&) antes del nombre de … Continue reading «Expresiones de puntero en C con ejemplos»

Puntero vs Array en C

La mayoría de las veces, los accesos de puntero y array pueden tratarse como si actuaran de la misma manera, siendo las principales excepciones:  1) el operador sizeof  o sizeof(array) devuelve la cantidad de memoria utilizada por todos los elementos de la array  o sizeof(pointer) solo devuelve la cantidad de memoria utilizada por la propia … Continue reading «Puntero vs Array en C»

¿Por qué solo se permite la resta de direcciones y no la división/suma/multiplicación?

¿Por qué se permite la resta? Se pueden restar dos direcciones porque la memoria entre las dos direcciones será memoria válida. Supongamos que las direcciones de memoria Ptr_1 y ptr_2 son válidas. Es obvio que la memoria entre estas dos direcciones es válida. El puntero ptr_1 apunta a la ubicación de memoria 0x1cb0010 y ptr_2 apunta a … Continue reading «¿Por qué solo se permite la resta de direcciones y no la división/suma/multiplicación?»

Diferencia entre iteradores y punteros en C/C++ con ejemplos

Puntero : Un puntero es una variable que contiene la dirección de otra variable, es decir, la dirección de la ubicación de memoria de la variable. Como cualquier variable o constante, debemos declarar un puntero antes de usarlo para almacenar cualquier dirección de variable. Sintaxis:   type* var_name; Ejemplo:  C++ // The output of this program … Continue reading «Diferencia entre iteradores y punteros en C/C++ con ejemplos»

¿Diferencia entre int (*p)[3] e int* p[3]?

Los punteros almacenan la dirección de las variables o una ubicación de memoria. Los punteros son una representación simbólica de direcciones. Permiten que los programas simulen llamadas por referencia, así como que creen y manipulen estructuras de datos dinámicas . Su declaración general en C/C++ tiene el formato: Sintaxis: tipo de datos *var_name;  Ejemplo: int … Continue reading «¿Diferencia entre int (*p)[3] e int* p[3]?»

Salida del programa | Desreferencia, Referencia, Desreferencia, Referencia….

Predecir la salida del siguiente programa #include<stdio.h> int main() {  char *ptr = «geeksforgeeks»;  printf(«%c\n», *&*&*ptr);      getchar();  return 0; } Salida: g Explicación: El operador * se usa para desreferenciar y el operador & se usa para obtener la dirección. Estos operadores cancelan el efecto entre sí cuando se usan uno tras otro. Podemos … Continue reading «Salida del programa | Desreferencia, Referencia, Desreferencia, Referencia….»

¿Por qué se requiere un alias estricto en C?

Considere el siguiente programa C. // A C program to demonstrate need of strict  // aliasing #include<stdio.h>    // Value of ‘a’ can be accessed/modified either // through ‘a’ or through ‘b’ int a = 5; int* b = &a;    int func(double* b) {     a = 1;        // The below statement modifies ‘a’ … Continue reading «¿Por qué se requiere un alias estricto en C?»

¿Cómo devolver múltiples valores de una función en C o C++?

Los nuevos programadores generalmente buscan formas de devolver múltiples valores de una función. Desafortunadamente, C y C++ no permiten esto directamente. Pero afortunadamente, con un poco de programación inteligente, podemos lograrlo fácilmente. A continuación se muestran los métodos para devolver múltiples valores de una función en C: Mediante el uso de punteros. Mediante el uso … Continue reading «¿Cómo devolver múltiples valores de una función en C o C++?»

Comportamiento inusual con punteros de caracteres

En C++ , cout muestra un comportamiento de impresión diferente con punteros/arrays de caracteres a diferencia de los punteros/arrays de otros tipos de datos. Entonces, este artículo primero explicará cómo cout se comporta de manera diferente con los punteros de caracteres, y luego se discutirá la razón y el mecanismo de trabajo detrás de esto. … Continue reading «Comportamiento inusual con punteros de caracteres»