1. 程式人生 > >取變數的地址賦值給另一個變數,C通過,C++編譯出錯

取變數的地址賦值給另一個變數,C通過,C++編譯出錯

 取變數的地址賦值給另一個變數,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