www.digitalmars.com Home | Search | C & C++ | D | DMDScript | News Groups | index | prev | next
Archives

D Programming
D
D.gnu
digitalmars.D
digitalmars.D.bugs
digitalmars.D.dtl
digitalmars.D.dwt
digitalmars.D.announce
digitalmars.D.learn
digitalmars.D.debugger

C/C++ Programming
c++
c++.announce
c++.atl
c++.beta
c++.chat
c++.command-line
c++.dos
c++.dos.16-bits
c++.dos.32-bits
c++.idde
c++.mfc
c++.rtl
c++.stl
c++.stl.hp
c++.stl.port
c++.stl.sgi
c++.stlsoft
c++.windows
c++.windows.16-bits
c++.windows.32-bits
c++.wxwindows

digitalmars.empire
digitalmars.DMDScript

c++ - Odd behavior in toy program

Hello group,

I just downloaded the Digital Mars C/C++ compiler and was
playing around with the piece of code shown at the end of
this post.  When I compile and run said code, I get the
following output:

dog = 8, dog_p points to 7

However, when I uncomment the printf("hello world") line
I get the output I expect:

dog = 7, dog_p points to 7

I'm confused as to what is going on.  Anyone care to
enlighten me?

Thanks!
Vic
-------------------------------------------------------
#include <stdio.h>

main() {
const int dog = 8;
int *dog_p = (int *)&dog;
*dog_p = 7;
//printf("hello world!\n");
printf("dog = %d, dog_p points to %d\n", dog, *dog_p);
}
-------------------------------------------------------
Aug 24 2005