关闭

int i=1,j=2; int k=i+++j;

1397人阅读 评论(0) 收藏 举报
分类:
因为运算符优先级为++大于+
所以第二条语句应该是k=(i++)+j
分解为下面的步骤
1.i+j;(由于i++是先使用i值在表达式中进行运算,再自加1)
2.k=第1步的结果3;

3.i++;(i从1自加为2)


这样,再深究一点:

为什么 j=++i+++i+++i 输出j是10?

j=(++i)+(++i)+(++i)=(((++i)+(++i))+(++i))
计算机在计算j=(a+b)+(c+d)+(e+f)先计算(a+b)+(c+d),并把结果存储(例如:存储在j中),然后再计算j+(e+f)=j;
所以计算机先计算了两个++i(前两项i为3,++i先于+号);也就是j=3+3;然后j=6+(++i)(最后的i为4),也就是j=6+4=10。


首先++i=2,再计算第二个++i=3,此时计算机里i=3,第一个i也=3,第二个i也=3,因为计算机里只有一个i,因此原式=(3+3)+4=10,记住计算机里只有一个i,算第二个时第一个i改变了

0
0
查看评论

int i=1,j=2; int k=i+++j;

因为运算符优先级为++大于+ 所以第二条语句应该是k=(i++)+j 分解为下面的步骤 1.i+j;(由于i++是先使用i值在表达式中进行运算,再自加1) 2.k=第1步的结果3; 3.i++;(i从1自加为2) 这样,再深究一点: 为什么 j=++i+++i+++i 输出j是...
  • Scythe666
  • Scythe666
  • 2015-07-09 17:22
  • 1397

C语言之int k,j,s; for (k=2;k<6;k++,k++)/*for(k=2;k<6;k=k+2)*/ {s=1; for(j=k;j<6;j++) s+=j; }输出结果为10

#include <stdio.h> int main(){ int k,j,s; for (k=2;k<6;k++,k++)/*for(k=2;k<6;k=k+2)*/ {s=1; for(j=k;j<6;j++) s+=j;}/*第一个for循环时k=2,进入内循环...
  • u012493556
  • u012493556
  • 2017-01-08 09:44
  • 1378

hdu 5213

很久没有写博客了, 今天学了一下莫对算法, 存个模板 #include using namespace std; const int N = 30000 + 10; const int M = 30000 + 10; struct node { int id; int ...
  • u011433745
  • u011433745
  • 2015-04-28 17:15
  • 520

test 三角形 (乱搞)

题解:乱搞 这个题测试的时候写的线段树区间修改区间查询,然后get到50分。。。。 这个题的正解其实就是个乱搞。 每一个修改对每一个询问的影响可以O(1)的计算,需要判断两个三角形的位置关系,然后计算重叠部分的点数。 然后我们可以对每个修改进行差分,当累积的未处理的操作数达到一定值的时候,我...
  • clover_hxy
  • clover_hxy
  • 2016-11-15 09:07
  • 146

int a[60][250][1000]数组的遍历面试题

请问 下面程序有什么错误? int a[60][250][1000],i,j,k;  for(k=0;k for(j=0;j for(i=0;i a[i][j][k]=0; 首先我运行了一下,是栈溢出了,原因是这个是在main中定义的一个局部变量,而局部变量是存储在栈中的,栈的容量...
  • qq_37887537
  • qq_37887537
  • 2017-07-25 20:14
  • 355

switch使用小结,大神勿喷

基本语法我在这里就概括性的说下, switch(数值){   //数值必须是short,long,int,char,byte;特别注意不能是boolean,float,double类型的数值 /*  *1.case 后面的数值也和前者所说的数值一样 *2.case后面的表...
  • gt15886435708
  • gt15886435708
  • 2017-06-16 15:29
  • 187

华为面试题三维数组问题

<br />原题如下:<br />请问下面程序有什么错误?<br /> int a[60][250][1000],i,j,k; for(k=0;k<=1000;k++) for(j=0;j<250;j++) for(i=0;i<6...
  • zhiya123
  • zhiya123
  • 2011-06-01 18:27
  • 1042

谭浩强魔方阵看不明白的同学看这里

#define _CRT_SECURE_NO_WARNINGS #include int main() { int a[15][15], i, j, k, p, n; p = 1; while (p == 1) { printf("enter n(1--15):\n"...
  • a149979032
  • a149979032
  • 2016-12-25 18:11
  • 223

[kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher J HDU 2594

题目地址:https://vjudge.net/contest/70325#problem/J 思路:我将两个串连一起,然后求一下Next就好啦~哦大概还要判断一下会不会越界。next数组记得要开2倍= = AC代码: #include using namespace std; const int ...
  • l718531794
  • l718531794
  • 2016-11-04 13:06
  • 80

快速排序 [Qsort]

在做USACO1.4 等差数列的时候,我发现如果用结构体+sort就会超时,用二维数组+qsort就能AC,所以为了不忘记Quick Sort,我还是把代码贴出来以备以后要看吧。void qsort(int l,int r) { int i=l,j=r,t,mid=b[(l+r)/2...
  • qq_20468287
  • qq_20468287
  • 2017-01-17 17:31
  • 96
    个人资料
    • 访问:1068916次
    • 积分:15545
    • 等级:
    • 排名:第841名
    • 原创:421篇
    • 转载:478篇
    • 译文:6篇
    • 评论:258条
    博客专栏
    友情链接
    文章分类
    最新评论