포인터가 동일한 배열을 가리키는 경우 포인터를 비교할 수 있습니다. 관계형 포인터는 두 포인터를 비교하는 데 사용할 수 있습니다. 포인터는 곱하거나 나눌 수 없습니다.
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인 경우. -
두 포인터가 동일한 개체의 비정적 데이터 멤버를 가리키거나 동일한 액세스 제어를 사용하여 해당 멤버의 하위 개체 또는 배열 요소를 가리키는 경우 결과가 지정됩니다.
-
두 포인터가 액세스 제어가 다른 동일한 개체의 비정적 데이터 멤버를 가리키는 경우 결과는 지정되지 않습니다.