c - 程序输出没有意义

标签 c arithmetic-expressions

我不明白这背后的逻辑..
我希望这个程序输出 2 但它输出 3
您能解释一下以下代码的工作原理吗:

#include <stdio.h>

int main()
{    int a = - -3; 

    printf("a=%d", a);

    return 0;
}

最佳答案

int a = - -3;

这条语句没有--(decrement operator),是unary minus运算符,使得- -33(取消否定)。因此它打印 3

旁注,如果你想到这一点

int a = --3;

as prints 2 然后你认为错了,因为这会导致 lvalue error 因为 -- 适用于变量而不是常量。正确的是

int a = 3;
--a ;/* this is valid,this make a as 2 now */

关于c - 程序输出没有意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52219735/

相关文章:

ios - 如何在 iOS 上获取当前信号处理程序?

python ,C : How to access methods written in C through Python?

基于 Java 的表达式计算器

python - 如何在推导式中正确使用算术运算符?

c - 在术语中使用反引号打开时屏幕尺寸为 NULL

c++ - 为什么 Clang 会自动向我的函数添加属性?

BASH:百分比变化——如何计算?如何在没有 bc 的情况下获得绝对值?

bash - bash 中 $[a-b] 和 $((a-b)) 之间的区别

java - 算术表达式未在函数调用中解析

c - Linux 套接字/段错误