发布网友 发布时间:2022-05-26 15:33
共5个回答
热心网友 时间:2023-10-24 17:26
因为括号是最高的优先级运算符号了。。先执行的是括号的里面的运算,,就像数学里面一样的。。你用!把数值转换为BOOL值了。。BOOL值是不能进行计算的,,所以你的这个语句是错误的。。不过你++用了也是没用的。。既然要转换为BOOL值用++干什么呢。。。还不是一样的。。呵呵。。热心网友 时间:2023-10-24 17:27
1楼的说法上面有点出入,C语言里面没有布尔型,楼主可以这么理解,++或者--这两个运算符只能用于变量,常量是不能用于自增自减的。!i++是在i的值取反后,变量I的值加1;(!i)++是先算!i,那么结果不是0就是1,是个常量;所以根据常量不能自增自减原则,0++或者1++是错误的热心网友 时间:2023-10-24 17:27
(!i)++运算是这样的:第一步先进行!i运算,得到的是一个具体的值……如果i=1,进行!i运算后是0,是(1i)这个整体为0,而++运算不能对一个具体的值进行运算,++只能对变量进行自增运算……开始学时这里很难理解的……你自己好好再想一想吧……热心网友 时间:2023-10-24 17:28
~取反,0取反是1,1取反是0热心网友 时间:2023-10-24 17:28
首先啊,你的代码就有错
int i,a=0,b=0;这里的第一个,号是用的汉字的,号。
现在给你解答题目:
1、这个题你首先要明白%符号的意思,即取余数。根据循环的要求可知i的值是1到9;
2、if语句的要求是i%2==0,即i除以2后取余数等于0时会触发if语句;
3、i的范围是1到9,能除以2后取余数为0的数只有2、4、6、8。所以if语句会触发4次。
4、到了这里,你需要知道continue的作用,结束本次的循环,但不会结束整个循环,也就是说到了continue这句话时,本次循环就结束了,之后的b++不再执行。所以,再执行if语句时,只有a的值再增加,b的值是不增加的。
5、a一共执行了4次a++。所以a的值等于4.
6、i的范围是1到9,能除以2后取余数不为0的数有1、3、5、7、9。所以此时if语句不会触发。
7、不触发if语句,就能执行b++。一共5次,所以b=5
8、最后结果是a=4,b=5