Program size that is shown by Arduino is the size of the 'code' portion of the hex file. Variable declaration data is stored in the same file, but as a separate 'section' of the file, and is not included in the reported program size. The details of the hex file are a bit more complicated, but if you're feeling particularly ambitious, this page: http://www.nongnu.org/avr-libc/user-manual/mem_sections.html will give you an introduction to how it's laid out. Just be forewarned, it may only make you more confused than you currently are though. It isn't beginner material.