Въведете две цели числа, A и B, и изведете A и B в реда първо най-голямо и после най-малко. Кодът е следният: Как да се позоваваме на променлива адрес и да приемем оператор *Оператор на указател (или оператор на косвен достъп) #include "stdafx.h" #include <stdio.h> int main(int argc, char* argv[])
{ int *p1,*p2,*p,a,b; printf("моля, въведете две цели числа:"); scanf("%d,%d",&a,&b); p1=&a; p2=&b; if(a<b) {p1=&b;p2=&a;}//Pointer акцент {p=p1; p1=p2; p2=p; Сега се присвояват директно нови стойности на P1 и P2, така че няма нужда да се дефинира междинната променлива p, и програмата може да стане по-кратка Този алгоритъм не разменя стойностите на цели променливи, а стойностите на два указателя (адреси на a и b)
printf("a=%d,b=%d\n",a,b); printf("max=%d,min=%d\n",*p1,*p2); return 0;
}
|