포인터가 동일한 배열을 가리키는 경우 포인터를 비교할 수 있습니다. 관계형 포인터는 두 포인터를 비교하는 데 사용할 수 있습니다. 포인터는 곱하거나 나눌 수 없습니다.
C에서
예
#include <stdio.h> int main() { int *p2; int *p1; p2 = (int *)300; p1 = (int *)200; if(p1 > p2) { printf("P1 is greater than p2"); } else { printf("P2 is greater than p1"); } return(0); }
출력
P2 is greater than p1
C++에서
예
#include <iostream> using namespace std; int main() { int *p2; int *p1; p2 = (int *)300; p1 = (int *)200; if(p1>p2) { cout<<"P1 is greater than p2"; } else { cout<<"P2 is greater than p1"; } return(0); }
출력
P2 is greater than p1
포인터 비교에 대한 몇 가지 핵심 사항 -
-
p1<=p2 및 p1>=p2는 모두 true를 생성하고 p1
p2는 둘 다 false를 생성합니다. 동일한 유형의 두 포인터 p1 및 p2가 동일한 객체 또는 함수를 가리키거나 둘 다 같은 배열이거나 둘 다 null입니다. -
p1
p2, p1<=p2 및 p1>=p2는 지정되지 않은 유형의 두 포인터 p1 및 p2가 동일한 개체의 구성원이 아닌 다른 개체 또는 동일한 배열의 요소를 가리키는 경우 다른 함수 또는 그 중 하나만 null인 경우. -
두 포인터가 동일한 개체의 비정적 데이터 멤버를 가리키거나 동일한 액세스 제어를 사용하여 해당 멤버의 하위 개체 또는 배열 요소를 가리키는 경우 결과가 지정됩니다.
-
두 포인터가 액세스 제어가 다른 동일한 개체의 비정적 데이터 멤버를 가리키는 경우 결과는 지정되지 않습니다.