不不不
你可别这么想
你就按照我说的想就行
if(x=2) 这个地方起了两个效果
一个是判断通过 是 判断
(x=2)表达式等于1 表达式为1 不代表x怎么样
第二个效果就是把2符给x
也就是这个时候 x下存储的值是2了
第二个效果在这个程序中并没起到作用
而第一个效果判断if条件成立
进行 是 语句的执行
也就是运行了printf("OK");
明白了,如果程序要是再加一句输出x的值,那么x的值就是2对吗?
----------------解决方案--------------------------------------------------------
怎么不看看我的呢.
if(x=2),括号内的表达式是2 而不是1.整个if语句为真所以执行printf("OK");
----------------解决方案--------------------------------------------------------
怎么不看看我的呢.
if(x=2),括号内的表达式是2 而不是1.整个if语句为真所以执行printf("OK");
if(x=2),括号内的表达式是2 而不是1,这句话我还没完全理解.
----------------解决方案--------------------------------------------------------
if(x=2),括号内的表达式是2 而不是1,这句话我还没完全理解.
一个符值也象函数一样要有个返回值(近似的这么认为)
那这个符值表达式的值就是最后赋予的值 也就是 2
判断表达式的值是1还是0 看表达式内部的式子是不是0
----------------解决方案--------------------------------------------------------
一个符值也象函数一样要有个返回值(近似的这么认为)
那这个符值表达式的值就是最后赋予的值 也就是 2
判断表达式的值是1还是0 看表达式内部的式子是不是0
明白了,谢谢!
那我想再问一道题目
以下程序输出结果是
#include"stdio.h"
main()
{int a=5,b=8,c=3,max;
max=a;
if(c>b)
if(c>a)
max=c;
else
if(b>a)
max=b;
printf("max=%d\n",max);
}
答案是5,可是我觉得是8,因为
if(c>b)
if(c>a)
max=c;
else
if(b>a)
max=b;
这些语句都没有被执行,道理是c<b,所以b的值应该维持不变8,我错在哪里?
请两位高手指教.
----------------解决方案--------------------------------------------------------
就是这样,这个只是个细节问题,只要知道赋值表达式的值即是x的值也是表达式的值.
----------------解决方案--------------------------------------------------------
明白了,谢谢!
那我想再问一道题目
以下程序输出结果是
#include"stdio.h"
main()
{int a=5,b=8,c=3,max;
max=a;
if(c>b)
{
if(c>a)
max=c;
else
{
if(b>a)
max=b;
}
}
printf("max=%d\n",max); //它的值还是a
}
答案是5,可是我觉得是8,因为
if(c>b)
if(c>a)
max=c;
else
if(b>a)
max=b;
这些语句都没有被执行,道理是c<b,所以b的值应该维持不变8,我错在哪里?
请两位高手指教.
----------------解决方案--------------------------------------------------------
if(c>b)
if(c>a)
max=c;
else
if(b>a)
max=b;
这个问题在上面的帖子说过了
----------------解决方案--------------------------------------------------------
那我觉得我分析得没错呀,可是为什么我的答案是错的?
----------------解决方案--------------------------------------------------------
看13楼
----------------解决方案--------------------------------------------------------