取變數的地址賦值給另一個變數,C通過,C++編譯出錯
阿新 • • 發佈:2019-04-20
取變數的地址賦值給另一個變數,C通過。正常執行,C++編譯出錯。 程式碼如下:
#include <stdio.h> int main(int argc, char *argv[]) { int x = 3; int *p = &x; int y = p; /* c OK. C++ : error: cast from 'int*' to 'int' loses precision [-fpermissive] */ long dd = &x; printf("%u, %x\n", &x, &x); printf("dd2=%u, %x\n", *(int *)y, dd); return 0; }
有什麼簡便的方法讓C++通過?使用st