sinmani, what your first rule on this -- or any -- forum should be is to post code that works. Your code generates a compiler error:
000600 01 VAR1 PIC S9(4) COMP.
000700 01 VAR2 PIC 9(4) REDEFINES VAR1.
IGYDS1048-E "REDEFINES" was not the first clause in a data definition. The clause
was accepted.
While COBOL accepts what you posted, the E level diagnostic would prevent most sites from continuing to linkedit / bind the program.
And the answer to your question is that yes, VAR2 reuses the two bytes of VAR1 and adds 2 more bytes. However, VAR2 is not a valid numeric value -- code:
01 VAR1 PIC S9(4) COMP.
01 VAR2 REDEFINES VAR1
PIC 9(4).
PROCEDURE DIVISION.
MOVE +1 TO VAR1.
DISPLAY 'VAR1 >' VAR1 '<'.
DISPLAY 'VAR2 >' VAR2 '<'.
IF VAR2 NUMERIC
DISPLAY 'VAR2 NUMERIC'
ELSE
DISPLAY 'VAR2 NOT NUMERIC'
END-IF.
GOBACK.
produces results of
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+---->
VAR1 >0001<
4ECDF46FFFF4
051910E0001C
------------------------------------------------------------------------------
VAR2 >....<
4ECDF4600004
051920E0100C
------------------------------------------------------------------------------
VAR2 NOT NUMERIC
4ECDF4DDE4DEDCDCC
05192056305445993
------------------------------------------------------------------------------
******************************** Bottom of Data ********************************