下载此文档

自增自减相关.doc


文档分类:生活休闲 | 页数:约3页 举报非法文档有奖
1/3
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/3 下载此文档
文档列表 文档介绍
例一:
#include <>
void main()
{int i=8;
 printf("%d\n",++i);
 printf("%d\n",--i);
 printf("%d\n",i++);
 printf("%d\n",i--);
 printf("%d\n",-i++);
 printf("%d\n",-i--);
}
程序1结果:
9
8
8
9
-8
-9
***********************************************************
例二:
#include <>
void main()
{
  int i=3;
  int j=4;
  i++;
  ++j;
  printf("%d, %d\n", i, j);
}
结果就是 4,5.
*************************************************************
#include <>
void main()
{
  int i=3;
  int j=4;
  int a = i++;
  int b = ++j;
  printf("%d, %d\n", a, b);
}
结果是3,5。结合此例理解:“++前置:i自增1后再参与其它运算;++后置:i参与运算后,i的值再自增1”。
例三:
#include <>
void main()
{
  int i=3;
  int j=4;
  int a = i++ + i++;
  int b = ++j + ++j;
  printf("%d, %d\n", a, b);
}
结果是:6,12
等价于:int a = (i++) + (i++);
int b = (++j) + (++j);
这下明白了,原来 i++的理解应该是执行完整个表达式的其他操作后,然后才自增,所以例子中的a=3+3=6;而后i再自增2次,i=5;相反,++j是先自增然后再参加其它运算,所以b=6+6=12。
***********************************************************************
例四:
#include <>
void main()
{
  int i=3;
  int j=4;
  int a = i++ + i++ + i++;
  int b = ++j + ++j + ++j;
  printf("%d, %d\n", a, b);
}
有人可能会说,这很简单,我全明白了:a=3+3+3=9,i=6,b=5+5+5=15,j=5。真的是这样吗?
结果却是:9,19
这下可好,又糊涂了。对于a = i++ + i++ + i++;我们已经没有疑问了,++后置就是执行完整个表达式的其他操作后,然后才自增,上例中也得到了验证,但 b = ++j + ++j + ++j;又该如何理解呢?
原理表达式中除了预算法本身的优先级外,还有一个结合性

自增自减相关 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数3
  • 收藏数0 收藏
  • 顶次数0
  • 上传人yunde112
  • 文件大小0 KB
  • 时间2015-05-03
最近更新