c - 比较 "if (arr<=arr1)"在给定程序中如何工作?

标签 c pointers comparison

这种比较是如何进行的?

#include <stdio.h>
#include <string.h>

int main(void) {
    char arr[]="WELCOME";
    char arr1[]="WELCOME";

    if (arr<=arr1)
      printf("equal");
    else
      printf("not equal");

    return 0;
}

在这个程序中,if 条件总是转到 else, 所以请有人帮助我如何在此处进行比较。

最佳答案

比较最终会询问两个数组 arrarr1 在内存中相对于彼此的位置。它正在询问哪个具有较低的地址。

如果您尝试比较两个数组中包含的字符串值,请使用 strcmp:

if(strcmp(arr, arr1) <= 0) ...

关于c - 比较 "if (arr<=arr1)"在给定程序中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31165579/

相关文章:

c - C 中使用分隔符分割字符串

c# - 比较两个类型为 T 的 System.Enum

c - 如何在 c 中执行带符号的右移 (>>)?

c - A a = (A) b; 中是否需要显式类型转换?

c - 大型缓冲区的 mmap 失败

c++14 unique_ptr 并使 unique_ptr 错误使用已删除函数 'std::unique-ptr'

c++ - 什么时候在 C++ 中使用 void*

c - 使用 strtok 多次分割一个字符串会导致意外行为

python - 比较来自 2 个以上列表的对象

ios - 使用 isEqualToNumber 方法比较两个 NSNumber