关于 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. 另外,请高手帮我说说"自加 自减的问题" 谢谢了!
是这样的,先弄清楚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语言好运。
首先应该知道,自增和自减运算符都有两种方法:(1)前置运算:运算符放在变量之前,++变量、--变量先使变量的值增(或减)1,然后再以变化后的值参与其他运算,即先增减、后运算。(2)后置运算:运算符放在变量之后,变量++、变量--变量先参与其他运算,然后再使变量的值增(或减)1,即先运算、后增减。 很多人认为P式相当于5+6+7或者和你一样6+6+6,事实上,在TC和MSC系统下是先把变量的初值5取出来,作为表达式中变量I的值,执行2次加法,然后再执行变量I的自增运算3次,所以变量i=8
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
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>