一个c++初学者的疑问

来源:百度知道 编辑:UC知道 时间:2024/05/18 18:32:50
#include <iostreat.h>
viod main ()
{ int a=0,b=o;
a++;
b++;
cout<<a<<endl; 输出a值,为0
cout<<b<<endl; 输出b值,为0
cout<<a++<<endl; 输出a++值,为1
cout<<b++<<endl; 输出b++值,为-1
cout<<++a<<endl; 输出++a值,为3
cout<<++b<<endl; 输出++b值,为-3
cin>>a;
}

这一段里cout<<++a<<endl; 输出++a值,为3
cout<<++b<<endl; 输出++b值,为-3
这两段不懂,,怎么算出来++A和++B分别是3和-3呀?
请帮帮,谢谢哈
希望说详细点哦,,

你上面的程序根本通不过编译!
头文件是#include<iostream>//#include <iostreat.h> 这是什么意思?建议楼主不要用.H的后缀这个是C语言的风格,你现在学习的 是C++
还应该有Using namespace std;//这样一句,不是 的话,你能用CIN和COUT和endl?
还有你的主函数,不应该是void(不返回类型);
cout<<a++<<endl; 输出a++值,为1 //在C++标准里,"++"分为后自增(A++)表示的是先对A进行输出,输出后再+1,所以当执行cout<<a++<<endl时 A的值是1,所以输出为1;当执行完cout<<a++<<endl后;A为2;执行下来,当执行到cout<<++a<<endl是由于是前自增"++"所以先对A+1,然后输出,输出结果就是3了
楼主那个B的值初始化错了,所以编译器会给你一个你预想不到的值;
你把B的值改为b=0,结果肯定和A的一样了,道理都是一样的.

#include <iostream> //你写成了include <iostreat.h>
using namespace std; //虽然头文件很简单,但还是规范点好嘛
void main ()
{ int a=0,b=0;
a++;
b++;
cout<<a<<endl; //输出a值,为0 //解释的语句这样子嘛
cout<<b<<endl; //输出b值,为0
cout<<a++<<endl; //输出a++值,为1
cout<<b++<<endl; //输出b++值,为1
cout<<++a<<endl; //输出++a值,为3
cout<<++b<<endl