打印

一个C语言问题,关于j++与++j

[复制链接]
1625|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
le062|  楼主 | 2010-9-12 21:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 #include<stdio.h>
void fun(int a[],int b[],int *x)
{ int i,j=0;
for(i=0;a[i];i++)
{if(i%2==0)continue;
if(a[i]>10)
b[j++]=a[i];             /*这儿是先j++还是先b[j]=a[i],由答案看是先后者*/
}
*x=j;
}
void main()
{int a[10]={3,15,32,23,11,4,5,9},b[10];
int i=0,x=0;
fun(a,b,&x);
for(i=0;i<x;i++)
printf("%d\t",b[i]);
printf("\n%d",x);
}

输出是
15 23
2


是不是j++优先级小  
我换成++j 输出就变成  
-858993460    15
2

相关帖子

沙发
logiccat| | 2010-9-12 21:26 | 只看该作者
++做后缀,则先使用j,然后j再+1;++做前缀,则j先+1,再使用j
运算符就是这么规定的,不是优先级的事情

使用特权

评论回复
板凳
NE5532| | 2010-9-12 21:41 | 只看该作者
1.应该去搞清楚。
2.实在搞不清楚就分开写。

使用特权

评论回复
地板
byeyear| | 2010-9-13 16:13 | 只看该作者
不管前置++还是后置++都是先加再用
区别在于用加以前的值还是加以后的值

试试下面这个式子:
i = i++;
这个式子整明白了对++的理解也就差不多了

使用特权

评论回复
5
le062|  楼主 | 2010-9-14 11:45 | 只看该作者
4# byeyear
 #include<stdio.h>
main()
{int a,i=1,j=1;
a=j++;
i=i++;
printf("%d\n%d\n",a,i);      
}


多谢大家,上面这个例子a=1 i=2 理解了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

435

帖子

4

粉丝