Introduce dos enteros, A y B, y saca A y B en orden de primero el mayor y luego el más pequeño. El código es el siguiente: Cómo referenciar una dirección variable y operador de dirección de toma *Operador puntero (o operador de acceso indirecto) #include "stdafx.h" #include <stdio.h> int main(int argc, char* argv[])
{ int *p1,*p2,*p,a,b; printf("por favor introduzca dos números enteros:"); scanf("%d,%d",&a,&b); p1=&a; p2=&b; if(a<b) {p1=&b;p2=&a;}//Énfasis del puntero {p=p1; p1=p2; p2=p; Ahora se le asignan directamente nuevos valores a P1 y P2, de modo que no es necesario definir la variable intermedia p y el programa puede volverse más conciso Este algoritmo no intercambia los valores de las variables enteras, sino los valores de dos punteros (direcciones de a y b)
printf("a=%d,b=%d\n",a,b); printf("max=%d,min=%d\n",*p1,*p2); return 0;
}
|