在c++/c++中,指针比较规则如下:指向同一对象的指针相等。指向不同对象的指针不相等。例外:指向空地址的指针相等。
指针比较的规则和例外
在 C/C++ 编程中,指针是一种可以存储其他变量地址的特殊变量。理解指针比较的规则对于掌握指针的使用至关重要。
规则:
- 两个指向同一对象的指针相比较为真(相等)。
- 两个指向不同对象的指针相比较为假(不相等)。
例外:
- 当两个指针指向 空或 null 地址 时,相比较为真。
实战案例:
以下 C 程序演示了指针比较的规则和例外:
#include <stdio.h>
int main() {
int a = 10;
int b = 20;
int *ptr1 = &a; // ptr1 指向 a
int *ptr2 = &b; // ptr2 指向 b
int *nullPtr = NULL; // 空指针
// ptr1 和 ptr2 指向不同的对象
if (ptr1 == ptr2) {
printf("ptr1 和 ptr2 指向同一对象。n");
} else {
printf("ptr1 和 ptr2 指向不同的对象。n");
}
// ptr1 和 nullPtr 指向不同的对象
if (ptr1 == nullPtr) {
printf("ptr1 和 nullPtr 指向同一对象。n");
} else {
printf("ptr1 和 nullPtr 指向不同的对象。n");
}
// nullPtr 和 nullPtr 指向相同的空对象
if (nullPtr == nullPtr) {
printf("nullPtr 和 nullPtr 指向同一对象。n");
} else {
printf("nullPtr 和 nullPtr 指向不同的对象。n");
}
return 0;
}
输出:
ptr1 和 ptr2 指向不同的对象。
ptr1 和 nullPtr 指向不同的对象。
nullPtr 和 nullPtr 指向同一对象。