为什么在这种情况下会丢弃该值?[英] Why does the value get discarded in this case?

问题描述

当我有:

int main(void)
{
整数 x = 256;
x>>8;

printf("值为: %d\n", x);
返回0;
}

我得到:

[cdalten@localhost ~]$ gcc -g -Wall seq.c -o seq
seq.c:在函数''main''中:
seq.c:6: 警告:声明无效
[cdalten@localhost ~]$ ./seq
值为:256
但是,当我将 x 从 x>>8 更改为 x++

#include <stdio.h>

int main(void)
{
整数 x = 256;
x++;

printf("值为: %d\n", x);
返回0;
}

我得到:

[cdalten@localhost ~]$ gcc -g -Wall seq.c -o seq
[cdalten@localhost ~]$ ./seq
值为:257

问题是,为什么像 x>>8 这样的东西会丢弃正确的值


推荐答案

gcc -g -Wall seq.c -o seq
seq.c:在函数''main''中:
seq.c:6: 警告:声明无效
[cdalten@localhost ~]

./seq
值为:256
但是,当我将 x 从 x>>8 更改为 x++

#include <stdio.h>

int main(void)
{
整数 x = 256;
x++;

printf("值为: %d\n", x);
返回0;
}

我得到:

[cdalten@localhost ~]

gcc -g -Wall seq.c -o seq
[cdalten@localhost ~]

本文地址:https://www.itbaoku.cn/post/1050539.html