c语言a=b–
首先你要明白什么是表达式,还有变量。
A是一个变量。
A++,++A都是A加了1.
比如A原来是1,执行了A++或++A后,A变量的值就是2了
至于A++和++A的区别主要是在表达式上的区别。
++A是先执行了A加1后,参与表达式的计算。
A++是A先参与表达式的计算,后执行自加1.
比如:
int a,b;
a=1;//如果你想把a的值1,付给b.那么,但你又想使得a加1。你就可以这么做
b=a++;//++在a之后,先把a的值付给b,然后再本身加1 。这时候b=1,a=2了。
//如果你还不懂得话。b=a++;的意思 就是b=a;a=a+1;这两句意思
//而b=++a 就是 a=a+1;b=a;的意思
至于A++=A+A+1
好像写错了吧
是A+=A+A+1
优先级等于 A=A+(A+A+1)//A+=B 是 A=A+B 的简化
!= 不等于,是条件运算符,用来判断真假的。
比如1!=2; 表达式的值就是假,也就是0;
C语言很多式子都是简化的,这样虽然可以节省代码,却比较让人糊涂。
C语言中a=-b–后a和b的值是多少?为什么是-3和2,不应该是-2和3吗
后缀自减,是执行完程序之后再减,你的那个可以看成:
a = -b;
b = b-1;
如果是前缀(a = —b),可以看成
b = b-1;
a= -b;
<img src="20231128/https://img.pizijiang.com/2023/11/20231128183802615.jpg" title="c语言a=b–
c语言中a=b-?
不会又是二级C的题目吧,不得不说那本书写这种题目可以不要看了。
1)题目的本意是,C的编译遵循一种叫贪心读法,也就是说,对于有歧义的符号,编译器会一直读取,直到他的意思完结。如本题,到底是a– -b还是a- –b,根据贪心法则,从左到右右,读到第二个减号,意思完结,所以是a– -b
2)为什么我说着题有问题,因为,即使是a=a– -b的意思明确了,这个也是一个未定义的行为,也就是说,他的结果是不确定的!a–并不确保返回a的值,到底是先减一再减b还是先完成运算再自减,都是有可能的。如果还有疑问,可自行百度,C 未定义行为。可以说这是一种非常错误的题目。
求采纳为满意回答。
(C语言)为啥a = b – a;b = b – a;a = b + a就可以交换a b的位置呢?
其实没那么难理解
a=b-a;
b=b-a;
所以,b=b-(b-a)=a,即b=a,把a里面的值赋给b
再有a=a+b
因为变的是b值,a值到这步还是上面的a=b-a,所以带入得
a=b-a+b;
2a=2b
即a=b,即把b的值赋给a
这样两个值就的到了互换