社区讨论

【高精度模板】求助!关于类型转化的指针问题

学术版参与者 4已保存回复 8

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
8 条
当前快照
1 份
快照标识符
@mi6xu9iy
此快照首次捕获于
2025/11/20 12:35
4 个月前
此快照最后确认于
2025/11/20 12:35
4 个月前
查看原帖
在网上找了蛮多高精度模板,都有下面这一段代码
C
struct BIGN{
    long long num[10]; 
    BIGN (long long x=0){
        *this=x;
    } 
//下略…………
按我的理解应该是将long long转化为BIGN的代码吧
虽然我还是不能很理解其中发生了什么,然后我就想既然this是一个指针,那有没有和它相同的指针呢
然后我找到了num
C
BIGN (long long x=0){
        if(n)cout<<this<<" "<<num<<endl;
        *this=x;
    } 
CPP
部分输出
0x89fbc0 0x89fbc0
0x89fb70 0x89fb70
0x89fca0 0x89fca0
0x89fcf0 0x89fcf0
0x89fbc0 0x89fbc0
0x89fb70 0x89fb70
0x89fca0 0x89fca0
0x89fcf0 0x89fcf0
0x89fbc0 0x89fbc0
0x89fb70 0x89fb70
0x89fca0 0x89fca0
0x89fcf0 0x89fcf0
0x89fbc0 0x89fbc0
0x89fb70 0x89fb70
0x89fca0 0x89fca0
0x89fbc0 0x89fbc0
0x89fb70 0x89fb70
0x89fcf0 0x89fcf0
0x89fca0 0x89fca0
0x89fbc0 0x89fbc0
0x89fb70 0x89fb70
0x89fcf0 0x89fcf0
0x89fbc0 0x89fbc0
0x89fb70 0x89fb70
0x89fca0 0x89fca0
0x89fbc0 0x89fbc0
0x89fb70 0x89fb70
0x89fcf0 0x89fcf0
0x89fc50 0x89fc50
他们指向的地址居然一模一样!
然后我就把代码改成了
C
BIGN (long long x=0){
	*num=x;
} 
然后就错了orz
也许这是一个非常低级的错误,大佬们轻喷QAQ

回复

8 条回复,欢迎继续交流。

正在加载回复...