두 개의 정수 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); 0을 반환;
}
|