Voer twee gehele getallen in, A en B, en output A en B in de volgorde van eerst het grootste en daarna het kleinste. De code is als volgt: Hoe een variabele adres te refereren en adresoperator te nemen *Pointeroperator (of indirecte toegangsoperator) #include "stdafx.h" #include <stdio.h> Int Main (Int Argc, Char* Argv[])
{ int *p1,*p2,*p,a,b; printf("voer alstublieft twee gehele getallen in:"); scanf("%d,%d",&a,&b); p1=&a; p2=&b; als(a<b) {p1=&b;p2=&a;}//Pointer nadruk {p=p1; p1=p2; p2=p; Nu worden er direct nieuwe waarden aan P1 en P2 toegewezen, zodat het niet nodig is om de tussenliggende variabele p te definiëren, en het programma beknopter kan worden Dit algoritme wisselt niet de waarden van gehele variabelen om, maar de waarden van twee pointers (adressen van a en b)
printf("a=%d,b=%d\n",a,b); printf("max=%d,min=%d\n",*p1,*p2); return 0;
}
|