"运算符比较字符串 (C)-6ren"> "运算符比较字符串 (C)-我试图了解 C 语言中的以下操作是否有定义的行为: char *str1 = "some string"; char *str2 = "another string"; if (*str1 > *st-6ren">
gpt4 book ai didi

使用 "<"或 ">"运算符比较字符串 (C)

转载 作者:太空狗 更新时间:2023-10-29 17:27:03 26 4
gpt4 key购买 nike

我试图了解 C 语言中的以下操作是否有定义的行为:

char *str1 = "some string";
char *str2 = "another string";
if (*str1 > *str2)
//do something...
else
//do something else...

(如题中所说,我指的是使用“>”运算符对字符串进行“比较”)

显然如果我会尝试:

str1 > str2

(没有 * 运算符)

它会根据指针(即字符串的地址)计算结果(对..?)。我搜索了它的答案但没有找到任何答案,而且我也没有通过玩代码来理解它。谢谢。

最佳答案

使用间接运算符 *您实际上是在比较取消引用时指针指向的字符的值。

因此在您的代码中,它正在比较 's''a'如下's' > 'a'这是真的。

值有 char类型,因此它被明确定义为使用 < , > == , >= , <= , !=运营商。

声明指向字符串文字的指针时要小心,使用 const限定符以防止意外修改它,因为 that 将是未定义的。

关于使用 "<"或 ">"运算符比较字符串 (C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35014525/

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