rzgaofei 发表于 2014-7-26 12:27:53

a的值真的变了?

这次,我做了实验,在vc++中输了一段代码,如:
#include<stdio.h>
void main()
{
    int a=10;
    printf("a:%o杠n ",a);//杠号在我ipad上不知怎么输入
    if(a--丨丨a++)
    {
      printf("a变了!杠n");
    }
    else
    {
      printf("a没变!杠n");
    }
}

运行结果:
a:12
a变了!
press any key to continue!

rzgaofei 发表于 2014-7-27 09:41:38

没人答?啊?

sxyufeng 发表于 2014-7-28 09:31:44

由于你的输出是%o,是按照八进制输出,所以是12。
而if(a--丨丨a++)   由于a--表达式的值非零,所以为真,所以执行里面的语句。

rzgaofei 发表于 2014-7-29 09:25:47

sxyufeng 发表于 2014-7-28 09:31
由于你的输出是%o,是按照八进制输出,所以是12。
而if(a--丨丨a++)   由于a--表达式的值非零,所以为真 ...

能详细点吗?看不太懂

sxyufeng 发表于 2014-7-29 13:47:00

rzgaofei 发表于 2014-7-29 09:25
能详细点吗?看不太懂

你先考虑清楚,你想要的结果是什么。而代码是什么意思。我觉得你可能没有理解代码的意思。

rzgaofei 发表于 2014-7-30 08:45:17

sxyufeng 发表于 2014-7-29 13:47
你先考虑清楚,你想要的结果是什么。而代码是什么意思。我觉得你可能没有理解代码的意思。

那这代码是什么意思?

sxyufeng 发表于 2014-7-30 08:48:12

rzgaofei 发表于 2014-7-30 08:45
那这代码是什么意思?

你先说说你理解的意思是什么?或者你想要的意思是什么。

仓鼠先森 发表于 2014-7-30 08:59:48

你把if(a--||a++)改成if(a !=10)a就不会变了

rzgaofei 发表于 2014-7-30 11:59:32

仓鼠先森 发表于 2014-7-30 08:59
你把if(a--||a++)改成if(a !=10)a就不会变了

为什么啊?

rzgaofei 发表于 2014-8-1 09:03:39

仓鼠先森 发表于 2014-7-30 08:59
你把if(a--||a++)改成if(a !=10)a就不会变了

if(a !=10)意思是如果a不等于10,你又说a就不会变了,不太懂

sxyufeng 发表于 2014-8-1 11:16:22

rzgaofei 发表于 2014-8-1 09:03
if(a !=10)意思是如果a不等于10,你又说a就不会变了,不太懂

在判断语句中a-- 被判断完,a--这个运算会执行。a的值就发生改变了。

rzgaofei 发表于 2014-8-2 13:58:02

sxyufeng 发表于 2014-8-1 11:16
在判断语句中a-- 被判断完,a--这个运算会执行。a的值就发生改变了。

这是if语句,为什么会执行里面的内容?

sxyufeng 发表于 2014-8-2 15:41:43

rzgaofei 发表于 2014-8-2 13:58
这是if语句,为什么会执行里面的内容?

不执行条件表达式,如何能知道表达式是真,还是假呢?

rzgaofei 发表于 2014-8-3 19:42:50

sxyufeng 发表于 2014-8-2 15:41
不执行条件表达式,如何能知道表达式是真,还是假呢?

那不执行的话,a的值是10?

sxyufeng 发表于 2014-8-4 09:40:23

rzgaofei 发表于 2014-8-3 19:42
那不执行的话,a的值是10?

如果不执行,就就是原来的值。
页: [1] 2
查看完整版本: a的值真的变了?