gpt4 book ai didi

c - 为什么这个输出字符串要数字?

转载 作者:太空宇宙 更新时间:2023-11-04 05:11:46 26 4
gpt4 key购买 nike

我有一个关于 c 中的 strcmp 函数的问题。作为家庭作业,我们对字符串进行了一些比较。但是有一件事不清楚,我们必须用这个函数来比较数字。我知道还有其他比较方法来比较数字,但我们的教授是这样使用的。

当我使用这样的函数时:

char string1[] = "1";
char string2[] = "2"

printf("Compare between str1 and str2: %d, %d", strcmp(string1, string2));

-> 输出:

Compare between str1 and str2: 1

这意味着 string1 更大。

然后我只使用变量进行 printf:

printf("string1 %d", string1);  //output: 6356750
printf("string2 %d", string2); //output: 6356748

为什么会有这样的数字?这个数字是什么意思?

我以为字符串数组中的数字代表 ASCII 码,但我想我错了。

最佳答案

请在带有完整警告的情况下进行编译!请务必仔细阅读这些警告!

编译器应该告诉你你的格式字符串是错误的。

printf 中的 % 参数描述了您提供的变量的类型。他们不提供任何“免费”类型转换,只提供格式化,所以当你有字符串时,你需要使用 %s

编译器试图做的是查看指向字符串的指针并将该指针值呈现为整数,但实际上如果整数的大小与指针的大小。

关于c - 为什么这个输出字符串要数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56148391/

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