The watch window provides a means to evaluate expressions and display the values of those expressions. Typically expressions are just the name of the variable to be displayed, but can be considerably more complex see debugger expressions. Note that the expressions are always evaluated when your program stops so the expression you are watching is the one that is in scope of the stopped program position.
Each expression appears as a row in the display. Each row contains the expression, it's value and type. If the value of an expression is structured (for example an array) then the structure can be opened to see its contents.
The display is updated each time the debugger locates to source code. So it will update each time your program stops on a breakpoint or single step and whenever you traverse the call stack. If any values that were previously displayed have changed they will be displayed in red.
The display format of the expression display can be changed by right clicking and selecting from the popup menu. The selected display format will then be used for all subsequent displays and will be recorded when the debug session stops.
For C programs the interpretation of pointer types can be changed by right clicking and selecting from the popup menu. A pointer can be interpreted as
The value of the expression can be modified by clicking on the value column and modifying the text or alternatively by choosing one of the default assignments that are on the right click popup menu. Note that when you modify integer values you need to prefix hexadecimal numbers with 0x, binary numbers with 0b and octal numbers with 0.