关于++的一些问题
第一个例子:#include<stdio.h>
int k,m=3;//全局变量未赋值情况下k=0
void fun(int m)
{ //执行到此的时候K为2
m+=k;k+=m++;
printf("%d,%d",k,m);
}
void main()
{
k++;
fun(k++);//k=1作为参数,随后k=2为什么不是函数结束才自增呢?
printf("%d,%d",k,m);
}
第二个:
但是在表达式中并不是这样,而是这个表达式结束才自增;
#include<stdio.h>
void main()
{
int a=1,b;
b=(a++)+a;
printf("%d",b);
}
输出的值为2;并不是3;
第三个
但在逗号表达式中:
#include<stdio.h>
void main()
{
int a=1;
printf("%d",(a++,a));
}
输出2;说明第二次使用a的时候已经自增,和在函数中一样
有没有很好的结论来说明为什么?还有在其他地方的a++,如if(a++)等等
[ 本帖最后由 shzlw 于 2010-12-13 20:24 编辑 ]