判断两个char *是否相同
时间: 2024-10-20 10:04:54 浏览: 51
判断两个`char*`指针所指向的内容是否相同,可以比较它们所指向的内存地址是否相等,如果地址相同则表示内容也一样,因为`char*`本质上就是存储了一个内存地址。以下是简单的C++代码示例:
```cpp
#include <iostream>
bool arePointersEqual(char* ptr1, char* ptr2) {
if (ptr1 == NULL && ptr2 == NULL) {
// 如果两者都是NULL,视为相等
return true;
} else if (ptr1 == NULL || ptr2 == NULL) {
// 如果有一个是NULL,视为不相等
return false;
} else {
// 指向的内存地址相等则认为内容相同
return *ptr1 == *ptr2 && strcmp(ptr1, ptr2) == 0;
}
}
int main() {
char str1[] = "Hello";
char str2[] = "Hello";
char* ptr1 = str1;
char* ptr2 = str2;
std::cout << (arePointersEqual(ptr1, ptr2) ? "相同" : "不同") << std::endl;
return 0;
}
```
这里我们首先检查两个指针是否都为`NULL`,再用`strcmp`函数比较两个字符串的字面值,只有当地址和字符串内容都完全一致时才认为它们是相同的。
阅读全文