gpt4 book ai didi

c++ - 确定真/假

转载 作者:太空宇宙 更新时间:2023-11-04 14:37:37 32 4
gpt4 key购买 nike

下面的代码

#include <iostream>
using namespace std;

int main(){
char greeting[50] = "goodmorning everyone";
char *s1 = greeting;
char *s2 = &greeting[7];

bool test = s2-s1;

cout << "s1 is: " << s1 << endl;
cout << "s2 is: " << s2 << endl;
if (test == true ){
cout << "test is true and is: " << test << endl;
}

if (test == false){
cout<< "test is false and is: " << test << endl;
}

return 0;
}

输出:

s1 is: goodmorning everyone
s2 is: ning everyone
test is true and is: 1

这里 bool test = s2-s1; 行实际计算的是什么?是字符串的长度吗?如果是这样,那么看到 s2 小于 s1 它应该是负数对吗?但输出为真?

此外,如果我将其更改为 bool test = s1-s2;,我仍然会得到相同的结果。所以无论它是负数还是正数都没有关系,它将是 true?只有在 0 时才为假?

s2-s1 是什么意思?

-干杯(试图摆脱疑虑:))

最佳答案

如果减法的结果为零,test将为假;否则为真。

任何数值类型、枚举类型、指针类型的值都可以转换为 boolean 值;如果该值为零(或指针为 null),则结果为 false;否则结果为真。

关于c++ - 确定真/假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3002338/

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