Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

So sánh con trỏ trong C/C++

Chỉ so sánh được con trỏ trỏ vào cùng một mảng. Dùng toán tử quan hệ (<, >, ==). Không thể nhân/chia con trỏ.

Ví dụ C

#include <stdio.h>
int main() {
    int *p1 = (int*)200;
    int *p2 = (int*)300;
    if (p1 > p2) printf("p1 > p2");
    else printf("p2 > p1");
    return 0;
}

Kết quả: p2 > p1

Ví dụ C++

#include <iostream>
using namespace std;
int main() {
    int *p1 = (int*)200;
    int *p2 = (int*)300;
    if (p1 > p2) cout << "p1 > p2";
    else cout << "p2 > p1";
    return 0;
}

Quy tắc so sánh

  • Cùng trỏ một đối tượng/mảng hoặc cùng NULL: ==, <=, >= trả về true
  • Trỏ đối tượng khác nhau không liên quan: kết quả unspecified
  • Thành viên cùng đối tượng, cùng quyền truy cập: kết quả xác định
  • Thành viên khác quyền truy cập: unspecified