关于C语言问题运算顺序问题
for (i = 0; i <= 100; i += 2){a += i;b = i + 1;c += b;}当i<100的时候,b=i+1,也就是说,i最大是到100也是符合i<=100这个条件的,此时,b=101,也就是说b最大也就是101了,在i=100的时候 , 但是,还需要判断一次i和100的值,判断i<=100之前,做了一次i+=2的操作,此时i=102 ,此时i+1!=b了。溢出了溢出了!所以值是不一样的。差2
自增自减分前置和后置两种
前置 ++j --j
后置 j++ j--
他们的作用就是 j=j+1 或 j=j-1
区别是
前置的先自增(自减),再返回数值
前置的先返回数值,再自增(自减)
例:
int a=1,b;
b=a++;
//结果为b=1,a=2
int a=1,b;
b=++a;
//结果为b=2,a=2
题目中的
str[j++]=10;
属于后置自增
先返回j
即str[j]=10;
再执行自增操作
即j=j+1
下面的是我自己总结的关于C优先级的口诀.
当然,应用这个口诀的前提是你必须认识所有的C语言的运算符。
优先决
括号成员第一; //括号运算符[]() 成员运算符. ->
全体单目第二; //所有的单目运算符比如++ -- +(正) -(负) 指针运算*&
乘除余三,加减四; //这个"余"是指取余运算即%
移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等
等于(与)不等排第七; //即== !=
位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|)
"三分天下"八九十;
逻辑或跟与; //逻辑运算符:|| 和 &&
十二和十一; //注意顺序:优先级(||) 底于 优先级(&&)
条件高于赋值, //三目运算符优先级排到 13 位只比赋值运算符和","高//需要注意的是赋值运算符很多!
逗号运算级最低! //逗号运算符优先级最低
由于C语言的运算符优先级与C++的不完全一样(主要是增加了几个运算符),所以这个口诀不能完全实用于C++.但是应该能够兼容,大家可以比较一下他们的区别应该就能够很快掌握C++的优先级的!
看潭老爷子的C程序设计,附录里有详细的算符优先顺序
关于C语言问题运算顺序问题
十二和十一; \/\/注意顺序:优先级(||) 底于 优先级(&&)条件高于赋值, \/\/三目运算符优先级排到 13 位只比赋值运算符和","高\/\/需要注意的是赋值运算符很多!逗号运算级最低! \/\/逗号运算符优先级最低 由于C语言的运算符优先级与C++的不完全一样(主要是增加了几个运算符),所以这个...
C语言中算术运算符优先级的问题
C语言中算术运算符优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。优先级高的运算符先结合,优先级低的运算符后结合,同一行中的运算符的优先级相同。基本的优先级:1、指针最优,单目运算优于双目运算。2、先运算...
C语言题目,求解运算顺序
1、printf函数是从左往右读取,然后将先读取放到栈底,最后读取的放在栈顶,处理时候是从栈顶开始的,所有我们看见的结果是,从右边开始处理的 2、逗号运算符:在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。3、++,--运算符:放在...
一道C语言的简单的算术问题,请说明运算顺序。
由于 * \/ %以及()优先级相同,并且高于+,所以会先计算:a%3*(int)(x+y)%2\/4 由于()的优先级最高,所以先计算x+y并进行类型转换,之后上式就变成了:a%3*7%2\/4 之后由于这里的运算符优先级相同,而且结合性是从左向右的,所以从左向右依次计算,即上式等价于:(((a%3)*7)%2)\/...
C语言中的一个表达式里运算符先后的问题
d先于右边的运算符++结合,然后再计算的结果求负操作。特别说明:在实际应用中,一般会加括号进行限定。尽量不要写出容易产生歧义的代码
C语言运算优先级问题(50分送上)
counter ++是先用counter 后再自加1 ,而如果是++counter 即++在前则是counter先自加1 再使用。做完上面这步后再进行%3运算,求余数,显然counter是3的倍数时counter ++%3的值为0,然后counter自加1 。再将counter ++%3的值与0相比,看看是否相等,即counter ++%3 ==0是否成立,成立则表达式...
C语言问题:2.5+1*7%2\/4的运算顺序
C语言里 * \/ % 三个运算符的优先级一样。所以先算 1*7 = 7 再算 7%2 = 1 再算 1\/4 = 0 再算 2.5 + 0 = 2.5
C语言运算问题
即表达式为真 不会再进行B的运算,只有当A=0时 才会进行B的运算,你可以试试将题目中a的初始值设为1 那么 就会执行到n=c==d 这 ,n就会被赋值了; && 与 也是一样的运算顺序 问题2:同上的道理 , A && B 需要是A为1 时才能往下执行 B是否为1,否则直接返回表达式的结果为 0 ...
在C语言中运算符的运算顺序是如何的?
运算符也有个运算顺序问题,先算乘除再算加减。单目正和单目负最先运算。取模运算符(%)用于计算两个整数相除所得的余数。例如:a=7%4;最终a的结果是3,因为7%4的余数是3。那么有人要问了,我要想求它们的商怎么办呢?b=7\/4;这样b就是它们的商了,应该是1。也许有人就不明白了,7/4...
c语言中四则运算的优先级怎样排列
1、看楼上的 2、分不清C里面的运算先后,用“()”,这是最笨的方法,先解决问题,实现程序目标,回头,再去优化代码。3、注意机器是从左向右读取,还是从右向左读取,不确定,最笨的方法,自己写代码测试 4、可以搜索一下,谭浩强的 《C程序设计》,里面对这个讲的比较详细 ...