#include <cstdio>
int main ()
{
unsigned long long int n;
scanf("%llu",&n);
printf("n: %llu\n",n);
n /= 3;
printf("n/3: %llu\n",n);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
无论我输入什么,我都会得到非常奇怪的输出,例如:
n: 1
n/3: 2863311531
Run Code Online (Sandbox Code Playgroud)
要么
n: 2
n/3: 2863311531
Run Code Online (Sandbox Code Playgroud)
要么
n: 1000
n/3: 2863311864
Run Code Online (Sandbox Code Playgroud)
什么原因?我该怎么做才能正确?
(g ++ 3.4.2,Win XP)
我是这样的:
#include <iostream>
using namespace std;
class FirstClass
{
public:
FirstClass(int _vx) : vx(_vx) {}
int x () {return vx;}
private:
int vx;
};
Run Code Online (Sandbox Code Playgroud)
很明显,我必须写:
int main ()
{
FirstClass Object1(666);
cout << Object1.x();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
一切都很好.但问题是,当我想在另一个班级中有这个:
#include <iostream>
using namespace std;
class FirstClass
{
public:
FirstClass(int _vx) : vx(_vx) {}
int x () {return vx;}
private:
int vx;
};
class SecondClass
{
public:
FirstClass Member1(666);
};
int main ()
{
SecondClass Object2;
cout << Object2.Member1.x();
return 0;
} …Run Code Online (Sandbox Code Playgroud)