【发布时间】:2015-12-05 04:32:38
【问题描述】:
大家好,我尝试编写一个简单的 switch 语句并遇到了这个问题。 我无法弄清楚为什么这段代码可以正常工作,我想这是因为运算符 ** 和 ++ 的优先级。 如果是这种情况,如果有人能写一个例子我应该如何在下面的语句中使用 value-at * 和 inc/dec 运算符,我会很高兴。
提前致谢,
while (--argc > 0)
argv++;
switch (**argv)
这段代码没有
while (--argc > 0)
switch (**(argv++))
完整代码:
while (--argc > 0) {
switch (**(argv++)) {
case '\0':
panic("empty command line argument");
break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
push (atof(*argv));
break;
case '+':
push(pop() + pop());
break;
case '-':
op2 = pop();
push(pop() - op2);
break;
case '*':
push(pop() * pop());
break;
case '/':
op2 = pop();
push(pop() / op2);
break;
default:
panic("unknown command");
break;
}
}
【问题讨论】:
-
工作和不工作的代码是一样的,...
-
感谢我修复了帖子
-
THIS 可以为您解释一些事情。
标签: c operator-precedence post-increment