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 *
类型的变量,每个变量都包含字符串常量的第一个字符的地址。
因此,当您使用 ==
比较 str5
和 str6
时,您是在比较两个地址。
如果要比较两个字符串是否相等,需要使用strcmp
函数。
我在学校学习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 *
类型的变量,每个变量都包含字符串常量的第一个字符的地址。
因此,当您使用 ==
比较 str5
和 str6
时,您是在比较两个地址。
如果要比较两个字符串是否相等,需要使用strcmp
函数。