Está en la página 1de 17

1

#include <iostream>

char *name; // name inicialmente no apunta a nada

char alum[30] = "Ing. HUGO SERRANO RODAS";

char prof[30] = "Ing. JAVIER MANRIQUE QUIÑONEZ";

int main()

std::cout << "Esto es lo que contiene la variable alum[20]: " << alum << "\n";

std::cout << "Esto es lo que contiene la variable prof[15]: " << prof << "\n\n\n";

name = alum; // ahora name apunta a alum

std::cout << "\nEl puntero name ahora es: " << name;

name = prof; // ahora name cambia su dirección y apunta a prof

std::cout << "\nEl puntero name ahora es: " << name;

std::cin.get();

return 0;

#include <iostream>

#include <conio.h>

int *n; // n inicialmente no apunta a nada

int a = 27;

int p = 5123;

int main()

{
std::cout << "Esto es lo que contiene la variable a: " << a << "\n";

std::cout << "Esto es lo que contiene la variable p: " << p << "\n\n\n";

n = &a; // ahora n apunta a la variable a

std::cout << "\nEl puntero n ahora tiene el valor: " << *n;

std::cout << "\ny tiene la dirección: " << n;

n = &p; // ahora n cambia su dirección y apunta a p

std::cout << "\n\nEl puntero n ahora tiene el valor: " << *n;

std::cout << "\ny tiene la dirección: " << n;

getch();

return 0;

#include <iostream>

#include <conio.h>

int *n; // n inicialmente no apunta a nada

int main()

n = new int[5]; // Se reserva 5 espacios del tipo int

// Ahora se puede guardar valores en esos espacios

n[0] = -245;

n[1] = 56;

n[2] = 345;

n[3] = 2;

n[4] = 1986;
// Se muestra en pantalla

for (int i = 0; i < 5; i++)

std::cout << "\nValor del item n[" << i << "] = " << n[i] << ", dirección en memoria: " <<
&n[i];

getch();

// Se libera la memoria reservada

delete[] n;

return 0;

#include <iostream>

#include <conio.h>

#include <cstdlib>

#include <iomanip>

int main()

float *matriz;

int n, i, j;

std::cout << "Ingrese la dimensión de la matriz cuadrada: ";

std::cin >> n;

matriz = new float[n * n];

srand(time(NULL));

for (int i = 0; i < n; i++)


for (int j = 0; j < n; j++)

matriz[n * j + i] = static_cast<float>(rand()) / RAND_MAX * 20.0; // Genera números


entre 0 y 20

for (int i = 0; i < n; i++)

for (int j = 0; j < n; j++)

std::cout << " " << std::setprecision(3) << matriz[n * j + i];

std::cout << "\n";

delete[] matriz;

getch();

return 0;

#include <iostream>

#include <cstring>

int main()

char *msg = new char[40];

std::strcpy(msg, "Esto sera almacenado en memoria...");

std::cout << "\n" << "La variable puntero msg contiene:\n" << msg;

std::cin.get(); // Wait for user input

delete[] msg; // Use delete[] for arrays

msg = nullptr; // Set the pointer to nullptr


std::cout << "\n" << "La variable puntero msg contiene:\n" << msg;

std::cin.get();

return 0; // Return 0 to indicate successful completion

#include <iostream>

#include <conio.h>

int main()

int n = 75;

int *p;

p = &n;

std::cout << std::endl;

std::cout << "Valor variable (n).........................: " << n << std::endl;

std::cout << "Variable (p) referencia a la dirección de (n): " << &n << std::endl;

std::cout << "Variable (p) referencia a la dirección de (n): " << p << std::endl;

std::cout << "Contenido de variable a la que apunta p (*p): " << *p;

getch();

return 0;

#include <iostream>

#include <conio.h>

int main() {

int num;

int *ptr1, *ptr2;


num = 100;

// Se asigna la dirección de num a la variable puntero ptr1

ptr1 = &num; // Asignación de punteros

ptr2 = ptr1;

std::cout << "Dirección de ptr1...: " << ptr1 << std::endl;

std::cout << "Dirección de ptr2...: " << ptr2 << std::endl;

std::cout << "\nApuntan a la misma dirección";

getch();

return 0;

#include <iostream>

#include <conio.h>

#include <stdlib.h>

int main() {

int *ptrx;

int x;

std::cout << "Ingrese un número: ";

std::cin >> x;

// &x determina la dirección de la variable x

ptrx = &x; // Esta dirección se le asigna a la variable puntero ptrx

std::cout << "El valor de la variable x es: " << x << std::endl;

// La dirección se muestra como un número hexadecimal

std::cout << "La dirección donde se almacena la variable x es: " << ptrx << std::endl;

// *ptrx y x se refieren a la misma variable


std::cout << "El valor de la variable que apunta ptr es: " << *ptrx << std::endl;

getch();

return 0;

#include <iostream>

#include <iomanip>

#include <conio.h>

#include <stdlib.h>

int main() {

long n;

long *ptrI;

float fnum;

float *ptrF;

n = 100;

fnum = 100.10;

ptrI = &n;

ptrF = &fnum;

std::cout << "El valor de n es: " << n << std::endl;

std::cout << "La dirección de n es (hexadecimal): " << ptrI << std::endl;

std::cout << "La dirección de n es (decimal): " << std::dec << long(ptrI) << std::endl;

std::cout << "El valor de fnum es: " << fnum << std::endl;

std::cout << "La dirección de fnum es (hexadecimal): " << ptrF << std::endl;

std::cout << "La dirección de fnum es (decimal): " << std::dec << long(ptrF) << std::endl <<
std::endl;

std::cout << "Otra forma de expresar el contenido de las variables es n y fnum...\n\n";

std::cout << "El valor de n es *ptrI: " << *ptrI << std::endl;
std::cout << "El valor de fnum es *ptrF: " << *ptrF << std::endl << std::endl;

getch();

return 0;

10

#include <iostream>

#include <conio.h>

int main() {

char *puntero;

char variable;

variable = 'a';

puntero = &variable;

std::cout << "Valor almacenado en variable (ASCII): " << int(variable) << std::endl;

std::cout << "Valor almacenado en puntero: " << int(reinterpret_cast<long>(puntero)) <<


std::endl;

*puntero = 'b';

std::cout << "Nuevo valor almacenado en variable (ASCII): " << int(variable) << std::endl;

std::cout << "Valor almacenado en puntero: " << int(reinterpret_cast<long>(puntero)) <<


std::endl;

getch();

return 0;

}
11

#include <iostream>

#include <conio.h>

int main() {

// This function seems to be coming from a DOS-based environment, but it's not a standard
C++ function.

void *vPuntero1;

void *vPuntero2;

int i = 15;

int *punteroInt;

float f = 4.68;

float *punteroFloat;

punteroInt = &i;

punteroFloat = &f;

vPuntero1 = &i;

vPuntero2 = &f;

// The correct way to cast and print the values pointed to by void pointers

std::cout << "vPuntero1 apunta a: " << *((int *)vPuntero1) << std::endl;

std::cout << "vPuntero2 apunta a: " << *((float *)vPuntero2) << std::endl;

getch(); // Similar to clrscr(), this seems to be a non-standard function.

return 0;

12

#include <iostream>
#include <conio.h>

int main() {

int numeros[5] = {14, 20, 30, 79, 80};

int *p;

p = numeros; // You don't need the address-of operator (&) here since 'numeros' is already
an array name.

std::cout << "Elementos del arreglo numeros" << std::endl;

std::cout << "numeros[0] = " << *p << std::endl; // Arrays are 0-indexed, so this should be
numeros[0]

std::cout << "numeros[1] = " << *(p + 1) << std::endl;

std::cout << "numeros[2] = " << *(p + 2) << std::endl;

std::cout << "numeros[3] = " << *(p + 3) << std::endl;

std::cout << "numeros[4] = " << *(p + 4) << std::endl;

getch(); // Similar to the previous code, this might not be available in all environments.

return 0;

13

#include <iostream>

int main() {

int numeros[5] = {14, 20, 30, 79, 80};

int *p;

int suma;

p = numeros; // Corrected pointer assignment

suma = 0;

for (int i = 0; i < 5; i++) {


std::cout << "numeros[" << i << "] = " << *(p + i) << std::endl;

suma = suma + *(p + i);

std::cout << "La suma de los elementos del array es: " << suma << std::endl;

return 0; // Added return statement

14

#include <iostream>

int main() {

int arreglo[5] = {15, 17, -5, 25, 100};

int *p;

int temp;

p = arreglo; // Corrected pointer assignment

int i, j;

std::cout << "\n\n El arreglo desordenado es:" << std::endl;

for (i = 0; i < 5; i++)

std::cout << *(p + i) << std::endl;

std::cout << "\n\n El arreglo ordenado es:" << std::endl;

for (i = 0; i < 5; i++)

for (j = i + 1; j < 5; j++)

if (*(p + i) > *(p + j)) {

temp = *(p + i);

*(p + i) = *(p + j);

*(p + j) = temp;

}
for (i = 0; i < 5; i++)

std::cout << *(p + i) << std::endl;

return 0;

15

#include <iostream>

int srlongitud(const char*);

int main() {

static char cad[] = "Borland C++ 5.0";

std::cout << "\n La longitud de " << cad << " es: " << srlongitud(cad) << " caracteres\n";

return 0;

int srlongitud(const char *cad) {

int cuenta = 0;

while (*cad != '\0') {

cuenta++;

cad++;

return cuenta;

16

#include <iostream>

#include <stdio.h>

#include <conio.h>

using namespace std; // Added namespace for cout and cin


void obtenerValores(float *valor1, float *valor2, char *operador); // Changed int* to char* for
operador

float calcular(float valor1, float valor2, char operador); // Changed int to char for operador

void imprimirRespuesta(float valor);

int main() {

float numero1;

float numero2;

char op; // Changed int to char for op

float total;

obtenerValores(&numero1, &numero2, &op);

total = calcular(numero1, numero2, op);

imprimirRespuesta(total);

getch();

return 0;

void obtenerValores(float *valor1, float *valor2, char *operador) { // Changed int* to char* for
operador

float primero;

float segundo;

char operacion; // Changed int to char for operacion

cout << "Ingrese primer número: "; cin >> primero;

cout << "Ingrese el operando [+][-][*][/]: "; cin >> operacion; // Changed getchar() to cin

cout << "Ingrese segundo número: "; cin >> segundo;

*valor1 = primero;

*valor2 = segundo;
*operador = operacion;

float calcular(float valor1, float valor2, char operador) { // Changed int to char for operador

float respuesta;

switch (operador) { // Changed single quotes to regular quotes for char values

case '+': respuesta = valor1 + valor2; break;

case '-': respuesta = valor1 - valor2; break;

case '*': respuesta = valor1 * valor2; break;

case '/':

if (valor2 != 0) // Changed the condition to check if valor2 is not equal to 0

respuesta = valor1 / valor2;

else {

cout << "Operación no válida. Valor dividido entre cero" << endl;

return 0;

break;

default:

cout << "Operación no válida." << endl;

return 0;

return respuesta;

void imprimirRespuesta(float valor) {

cout << "\n El resultado de la operación es: " << valor;

17

#include <iostream>
#include <cstdlib> // Include cstdlib for qsort

int funcionOrdena(const void *valor1, const void *valor2);

int (*punteroFuncion)(const void *, const void *);

int lista[5] = {100, 50, -87, 12, 80};

int main() {

int x;

punteroFuncion = funcionOrdena;

qsort((void *)lista, 5, sizeof(lista[0]), punteroFuncion);

std::cout << "El arreglo ordenado es:" << std::endl;

for (x = 0; x < 5; x++)

std::cout << lista[x] << std::endl;

return 0;

int funcionOrdena(const void *valor1, const void *valor2) {

return (*(int *)valor1) - (*(int *)valor2);

18

#include <iostream>

#include <cstdlib> // Include cstdlib for qsort

#include <cstring> // Include cstring for strcmp

int funcionOrdena(const void *valor1, const void *valor2);

int (*punteroFuncion)(const void *, const void *);

char lista[5][20] = {"Toro", "Gato", "Abeja", "Serpiente", "Perro"};


int main() {

punteroFuncion = funcionOrdena;

qsort((void *)lista, 5, sizeof(lista[0]), funcionOrdena);

std::cout << "El arreglo ordenado es:" << std::endl;

for (int x = 0; x < 5; x++)

std::cout << lista[x] << std::endl;

return 0;

int funcionOrdena(const void *valor1, const void *valor2) {

return strcmp(static_cast<const char *>(valor1), static_cast<const char *>(valor2));

19

#include <iostream>

struct alumno {

char codigo[10];

char nombre[50];

float nota1;

float nota2;

float promedio;

};

void mostrardatos(alumno *puntero);

int main() {

alumno estudiante[] = {

{"01", "Baltazar Juan", 15, 13},


{"02", "Campos Lucille", 18, 19},

{"03", "Villafuerte Luis", 10, 11}

};

alumno *p = estudiante;

for (int i = 0; i < 3; i++, p++)

mostrardatos(p);

return 0;

void mostrardatos(alumno *puntero) {

std::cout << "Codigo: " << puntero->codigo << std::endl;

std::cout << "Nombre: " << puntero->nombre << std::endl;

std::cout << "Nota 1: " << puntero->nota1 << std::endl;

std::cout << "Nota 2: " << puntero->nota2 << std::endl;

puntero->promedio = (puntero->nota1 + puntero->nota2) / 2.0;

std::cout << "Promedio: " << puntero->promedio << std::endl << std::endl;

También podría gustarte