%a =7208696 임
#include
using namespace std;
int main()
{
int a = 90;
int* p;
p = (int*)7208696;
//printf("%d", *p);
printf("%d %d", *p, &a);
}
실행결과
90 7208696
#include
using namespace std;
int main()
{
int a = 90;
int* p;
p = (int*)7208696;
printf("%d", *p);
//printf("%d %d", *p, &a);
}
실행결과
7208696
원레 2번째 코드 실행결과는 90이 나와야하지 않나요? 왜이런거임?
제일 첫줄이 잘못됨 %a = ...
아 &a임
아니 그게 네 생각대로 그렇게 딱 정해지지 않음
뭔 양자역학도 아니고 관측결과에따라 실행결과가 달라진다는게 말이됨? printf("%d", &a);를 한것과 안한것이 실행결과에 영향을 주는데
사용처가 없으니 컴파일러가 최적화를 하면서 없애버리는거임 volatile 붙이던가 변수 사용처를 만들어주면 됨