爱问知识人 爱问教育 医院库

关于 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 14:43:19
      是这样的,先弄清楚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语言好运。
      

    y***

    2007-08-09 14:43:19

其他答案

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

    2007-08-09 14:37:49

  • 2007-08-09 14:15:46
  • 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
    

    1***

    2007-08-09 14:15:46

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 176-195
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):