搜索
首页 电脑/网络 程序设计 C/C++

关于 C语言编程的问题?

  题目是: void main() { int i=5,j=5,p,q; p=(i++)+(i++)+(i++); q=(++j)+(++j)+(++j); printf("%d,%d,%d,%d",p,q,i,j); } 这里p等于15我懂, i为什么等于8书上说"i自增3次,相当于加3,得8。
  "那为什么不是p中每个i自增1,得6+6+6呢? q中j应该先自加,为什么不是得6+6+6,而是8,q=24。 另外,请高手帮我说说"自加 自减的问题" 谢谢了!。

全部回答

2007-08-09

0 0
    是这样的,先弄清楚i++和++i的区别: i++是先赋值再自加; ++i是先自加再赋值; 再就是要弄清楚运顺序,有括号的先运算括号内的; 所以: p=(i++)+(i++)+(i++);先计算括号内的,把每个括号时的i赋值出来,得p=5+5+5,再运算i++为6,i++为7i++为8,i最终为8,最后计算p=5+5+5=15 q=(++j)+(++j)+(++j);先计算括号内的,把每个括号内的j先后自加,j++为6j++为7j++为8,得到j最终得8,再计算:q=8+8+8=24。
     其实要弄清楚++i和i++要多看几个例题,自己再多实验,应该就行了,个人认为++i和i++只是为了使程序显得简捷,但是用多了可能减少程序的可读性。建议除了几个常用的地方如for()中还有指针等地方用,其它地方尽量少用。
   另外,还有什么问题可以直接发邮件来问我: ycz870@ 祝你学习C语言好运。  。

2007-08-09

44 0
    首先应该知道,自增和自减运算符都有两种方法:(1)前置运算:运算符放在变量之前,++变量、--变量先使变量的值增(或减)1,然后再以变化后的值参与其他运算,即先增减、后运算。
  (2)后置运算:运算符放在变量之后,变量++、变量--变量先参与其他运算,然后再使变量的值增(或减)1,即先运算、后增减。
     很多人认为P式相当于5+6+7或者和你一样6+6+6,事实上,在TC和MSC系统下是先把变量的初值5取出来,作为表达式中变量I的值,执行2次加法,然后再执行变量I的自增运算3次,所以变量i=8。

2007-08-09

35 0
i++是用i计算值,再将i+1 j++是用+1后的值计算 所以: p=5+5+5=15 i=5+1+1+1=8 q=8+8+8=24 j=5+1+1+1=8

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
C/C++
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
程序设计
C/C++
VB
数据库
汇编语言
JAVA相关
VC++
C#/.NET
其他编程语言
C/C++
C/C++
举报
举报原因(必选):
取消确定举报