gpt4 book ai didi

c - 为什么 char * 和 char ** 的值相同?

转载 作者:行者123 更新时间:2023-12-02 06:13:18 26 4
gpt4 key购买 nike

我写的这段代码很简单,所以我不明白的是为什么 **str1**str2 是一样的?

代码

#include <stdlib.h>
#include <stdio.h>

int main() {
char *str1 = "Hey, you";
char *str2 = malloc(11);
strcpy(str2, "Hey! You");

if (*str1 == *str2) {
printf ("HoHoHo!");
}

return 0;
}

最佳答案

您的代码中没有任何地方有 **str1 和 **str2。我想您是在问为什么 if (*str1 == *str2) 是真的?该代码测试 str1str2 指向的字符。由于在这两种情况下都是 'H',因此表达式的计算结果为 true。

如果您想比较 C 风格的字符串,您可以使用 strcmp,如果两个字符串相等则返回零。

if (strcmp(str1, str2) == 0)
{
printf ("HoHoHo!");
}

关于c - 为什么 char * 和 char ** 的值相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54224956/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com