两个很弱的关于自加符的有关问题
两个很弱的关于自加符的问题
下列程序的执行结果为?
#include <iostream. h>
void main()
{
int a=3,b=0;
int*p=&a:
b=+a++;
cout < <*P < <”,” < <b < <endl;
}
我知道b是4,a是3还是4?
还有这个
#include <iostream. h>
void main()
{
for(int a=0,x=0;!x&&a <=10;a++)
{
a++;
} l
cout < <a < <endl;
}
花括号里的a自加以后,for循环条件语句里的a自加是接着加还是不管花括号里的?
------解决方案--------------------
第一个程序:
b=+a++;
相当于b=(b+a);a++;
所以输出的结果应该是4,3
也就是a自加了一次等于4,
b在a自加之前等于了a+b,也就是3.
第二个程序:
for(int a=0,x=0;!x&&a <=10;a++)
{
a++;
}
a每次都要自加两次,所以当a=10的时候,这时是它最后一次循环了,而这时a仍然要自加两次,所以最后a=12
下列程序的执行结果为?
#include <iostream. h>
void main()
{
int a=3,b=0;
int*p=&a:
b=+a++;
cout < <*P < <”,” < <b < <endl;
}
我知道b是4,a是3还是4?
还有这个
#include <iostream. h>
void main()
{
for(int a=0,x=0;!x&&a <=10;a++)
{
a++;
} l
cout < <a < <endl;
}
花括号里的a自加以后,for循环条件语句里的a自加是接着加还是不管花括号里的?
------解决方案--------------------
第一个程序:
b=+a++;
相当于b=(b+a);a++;
所以输出的结果应该是4,3
也就是a自加了一次等于4,
b在a自加之前等于了a+b,也就是3.
第二个程序:
for(int a=0,x=0;!x&&a <=10;a++)
{
a++;
}
a每次都要自加两次,所以当a=10的时候,这时是它最后一次循环了,而这时a仍然要自加两次,所以最后a=12