当前位置: 首页 > 面试题库 >

关于后缀/前缀操作顺序的“ C-C ++”笑话

沈子实
2023-03-14
问题内容

我的朋友给我开了个玩笑:

问:C和C ++有什么区别?

A.没什么,因为:(C-C ++ == 0)

我试图更改订单并被卡住。

看下面的代码:

public class Test {
    public static void main(String args[]) {
        int c = 10;         
        System.out.println(c++ - c);
        System.out.println(++c - c);        
    }
}

为什么返回:

-1
0

我了解后缀和前缀增量。为什么这不是结果?

0
1

问题答案:

因为在第一个示例中,c从10开始 c++递增,c然后返回10,所以第二个示例由于已递增而c现在求值为11。因此,求出的最终表达式为10 - 11,等于-1。

在第二个示例中,再次++c增加c,但返回12,因为它是预先增加的。第二个c值也计算为12,因为它是存储在中的新值c。因此该表达式最终的计算结果为12 - 12,等于0。



 类似资料:
  • 你好,Stack,我现在正想写一个RPN转换器,我是C新手。但是我遇到了问题。希望我能详细解释这些问题。我使用数组来堆叠运算符。当我开始讨论以下问题时,让我们使用示例“5 8”: 出于某种原因,它会将运算符推到堆栈上,但不会将运算符添加到后缀字符串变量中,因为我也在添加我的元素。我看了一下我的pop函数,这似乎是正确的,但我很困惑。如果你能把我引向正确的方向那就太好了。 这是我的完整代码: 另外,

  • 我写了一个中缀式转化为后缀式,前缀式,并计算出中前后缀式结果的代码,但是在确保输入格式正确后(我输入的是:11+22*(9-6)/3#),输出为:Have no target!!,我想了好久,觉得是输入的式子没有办法入栈,但是找不出来哪里有问题,能帮我看一下是哪里的问题吗?谢谢各位大佬! 以下是我的代码: 主函数中将 改为 输出变成了“The Sqstack2 is empty!” 试过修改ini

  • 我在互联网上搜索了一个很好的实现,它不是把数字表达式,而是把变量表达式从中缀符号转换成前缀和后缀。我做的所有搜索都没有成功。基本上,我想看看PHP中是否有任何实现,这样我就可以修改它以支持更多的操作符,而不仅仅是(-,*,=)。 例如转换: 同时保留变量名,不必输入数字进行计算。

  • 当你编写一个算术表达式如 B*C 时,表达式的形式使你能够正确理解它。在这种情况下,你知道 B 乘以 C, 因为乘法运算符 * 出现在表达式中。这种类型的符号称为中缀,因为运算符在它处理的两个操作数之间。看另外一个中缀示例,A+B*C,运算符 + 和 * 仍然出现在操作数之间。这里面有个问题是,他们分别作用于哪个运算数上,+ 作用于 A 和 B , 还是 * 作用于 B 和 C?表达式似乎有点模糊

  • 我的任务是使用单链表实现堆栈,将中缀形式的字符串转换为后缀形式。为简单起见,此字符串不包含任何空格。 简而言之,我的算法是: > 按操作顺序使用字符及其关联优先级创建临时节点 如果是操作而不是数字,则将其推到堆栈上/如果是数字,则自动将其附加到后缀字符串 每次将一个字符推送到堆栈上时,如果堆栈的顶部节点的优先级高于下一个字符的临时节点,请将其从堆栈中弹出,并将其附加到后缀字符串中。 这些步骤在手动