Tag: 比较运算符

为什么我的符号测试总是报告“否定”?

以下程序应打印数组元素的总和是正数还是负数: #include #define ARR_SIZE 5 int main() { int array[ARR_SIZE] = {1,-2,3,4,-5}; unsigned sum; int i; for(i=0, sum=0; i -1) printf(“non negative\n”); else printf(“negative\n”); return 0; } 该计划没有做到它应该做的事情; 无论收到什么数组值,它都会打印“负数”。 例如,在上面的程序中写入的数组的总和是1,因此我期望以下输出: sum 1 sum -1 sum 2 sum 6 sum 1 1 non negative 而输出是: sum 1 sum -1 sum 2 sum 6 sum 1 1 […]

比较运算符在Python与C / C ++中的优先级

在C / C ++中,比较运算符(如优先级高于== ,对吧? 所以在C / C ++中,代码将评估为true或1 : if(3<4 == 2<3) { //3<4 == 2<3 will evaluate to true, right? … } 但在Python中,它似乎是错误的: 3<4 == 2<3 #this will evaluate to False in Python. 题 在Python中,每个比较运算符都具有相同的优先级吗?

布尔值的排序

在C ++的C ++或下,如何为布尔值定义小于运算符? 或者,解释此代码的行为: #ifndef __cplusplus #include #endif #include int main() { bool b = -1; if(b < true) { printf("b < true\n"); } if(b < false) { printf("b < false\n"); } if(true < false) { printf("true < false\n"); } if(false < true) { printf("false < true\n"); } } 在MSVC版本10下,编译为C ++代码,GCC 4.6.3-ubuntu5编译为C代码,G ++ 4.6.3-1ubuntu5编译为C ++代码,所有你得到的是 […]

运算符如何使用指针?

只是为了好玩,我有一个const char*的std::list ,每个元素指向一个以null结尾的文本字符串,并在其上运行std::list::sort() 。 碰巧的是,它(没有双关语意)没有对字符串进行排序。 考虑到它正在使用指针,这是有道理的。 根据std::list::sort()的文档 ,它(默认情况下)使用operator <在元素之间进行比较。 暂时忘记这个列表,我的实际问题是:这些(>, =,<=)运算符如何处理C ++和C中的指针? 他们只是比较实际的内存地址吗? char* p1 = (char*) 0xDAB0BC47; char* p2 = (char*) 0xBABEC475; 例如,在32位小端系统上, p1 > p2因为0xDAB0BC47 > 0xBABEC475 ? 测试似乎证实了这一点,但我认为将它放在StackOverflow上以供将来参考是件好事。 C和C ++都对指针做了一些奇怪的事情 ,所以你真的不知道……