黑马程序员技术交流社区
标题:
为什么结果不一样,详细解释。
[打印本页]
作者:
小周学诚
时间:
2013-7-19 10:06
标题:
为什么结果不一样,详细解释。
static void Main(string[] args)
{
int a = 10;
a++;
Console.WriteLine(a);
++a;
Console.WriteLine(a);
a--;
Console.WriteLine(a);
--a;
Console.WriteLine(a);
Console.ReadKey();
}
结果为11 12 11 10
而网上说的这个
a=10
a++,++a,a--,--a都等于几啊?
答案是10,12,12,10,
解释为
这个就是前缀运算符和后缀运算符的应用。
a=10
所以第一个a++运行时,a的值还是10,当运算结束后,a=11(因为是后缀,所以要运算后再加1)
第二个++a,这时a的值已经是11,再加1为12(因为是前缀,所以要先加1再运算)
第三个,a--,同理了,先运算后减,所以也是12,运算结束后为11
第四个,先减1,再运行,所以是10.
最终的结果为 10,12,12,10
作者:
小周学诚
时间:
2013-7-19 10:07
两者出现的答案为什么一样
作者:
马晓凤
时间:
2013-7-19 12:28
本帖最后由 马晓凤 于 2013-7-19 12:31 编辑
前缀运算符 a++:先自动加1后使用
后缀运算符:++a先使用后加1
static void Main(string[] args)
{
int a = 10;
int a1 = a++;
Console.WriteLine(a1);//由于是后缀运算符,所以先运算(将10赋值给a1),然后a自动加1变成11,但此时a1为10的值不受影响
int a2 = ++a;
Console.WriteLine(a2);//++a 先加1后赋值,a2=11+1
int a3 = a--;
Console.WriteLine(a3);//a-- 先赋值后-1; a3=12 ; a=12-1=11</P>
int a4 = --a;
Console.WriteLine(a4);//先-1后赋值 a=a-1=11-1=10;a4=a=10</P>
Console.ReadKey();
}
结果 10 12 12 10
static void Main(string[] args)
{
int a = 10;
a++;
Console.WriteLine(a);//a=a+1=10+1=11
++a;
Console.WriteLine(a);//a=a+1=11+1=12
a--;
Console.WriteLine(a);//a=a-1=12-1=11
--a;
Console.WriteLine(a);//a=a-1=10;</P>
Console.ReadKey();
}
结果 11 12 11 10
复制代码
作者:
§風過無痕§
时间:
2013-7-19 20:15
相信自己的思维 相信自己调试的结果!网络上的信息不是100%的准确
static void Main(string[] args)
{
int a = 10;//a=10
a++;//执行完这一句a=a+1=11
Console.WriteLine(a); //输出11
++a;//执行完这一句a自加1=12
Console.WriteLine(a); //输出12
a--;//执行完这一句a=a-1=11
Console.WriteLine(a);//输出11
--a;//执行完这一句a自减1 a=a-1=10
Console.WriteLine(a);//输出10
Console.ReadKey();
}
复制代码
作者:
XXL
时间:
2013-7-19 20:54
把a++和++a当做有返回值的函数运算
a++:
int aPlusPlus(int& a)
{
int returnVal=a;
a=a+1;
return returnVal;
}
++a:
int plusPlusA(int& a)
{
a=a+1;
return a
}
作者:
leayon
时间:
2013-7-19 23:20
其实这个前缀、后缀运算符可以这样来理解,a++这个表达式里面,+在后面,所以就理解为把a用了之后再使a自身+1,而++a中,由于+在a前面,因此可以理解为在使用a之前就要使a自身+1
作者:
张荣耀
时间:
2013-7-24 17:00
实际上一楼说的很清楚了,在此不再解释
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2