char* 值之间的比较

comparison between char* values

我在学校学习c编程,有一个关于char*的问题。 我初始化了 char* str5 和 char* str6,它们的值是完全一样的。 我想确认的是,如果我在 if 语句中比较它们,它是否总是比较它的地址?如果是,为什么?

char* str5 = "hold";
  printf("str5: %s\n", str5, str5);


  char* str6 = "hold";

  if (str5 == str6){
    printf("str5 and str6 point to the same address\n");
  }  
  else{
    printf("str5 and str6 point to different addresses\n");

  }    

感谢任何反馈,非常感谢!

字符串不是 C 中的内置类型。您有两个 char * 类型的变量,每个变量都包含字符串常量的第一个字符的地址。

因此,当您使用 == 比较 str5str6 时,您是在比较两个地址。

如果要比较两个字符串是否相等,需要使用strcmp函数。