我试图在c++中表示一些大数。在下面的代码中,如果只尝试打印s,编译器就不会抱怨。但是,如果试图进行一些乘法并将其存储在t中,编译器将称为integer overflow in expression...。
我试图使它成为unsigned long long t,但编译器再次抱怨。有没有办法在没有溢出的情况下进行这种乘法?
int main ()
{
long long int s = 320718425168;
long long int t = 4684688*68461; //4684688*68461 = 320718425168
return 0;
}
我在一次在线测试中遇到了这段代码。这段代码安全吗?我用来创建实例的文字的生命周期是多少?文字"John“是否在p1实例化后被销毁(因为这样就完成了使用该文字的表达式)。
class Person {
public:
char *name;
Person(char *s) { name = s}
inline void setName(char *newName) {name = newName;}
};
int main(){
Person p1("John");
Person p2("Steve"