user52524: This might be a stupid question to ask but I'm curious. I decided to test this myself and I got a value of 2 for both HIGH and LOW, why would it output 2? 

user26916: In Arduino AVR Boards, HIGH and LOW are currently macros:
https://github.com/arduino/ArduinoCore-avr/blob/1.6.23/cores/arduino/Arduino.h#L40-L41
#define HIGH 0x1
#define LOW  0x0

This means that sizeof(HIGH) is equivalent to sizeof(0x1). 0x1 is an integer constant. The default type of integer constants is int. On an 8 bit microcontroller like the ATmega2560 used by your Arduino Mega, an int is 16 bits. 
That is why sizeof(HIGH) returns 2 (16 bits / 8 bits/byte = 2 bytes).

52524: <p>This might be a stupid question to ask but I'm curious. I decided to test this myself and I got a value of 2 for both HIGH and LOW, why would it output 2? </p>
 26916: <p>In Arduino AVR Boards, HIGH and LOW are currently macros:</p>

<p><a href="https://github.com/arduino/ArduinoCore-avr/blob/1.6.23/cores/arduino/Arduino.h#L40-L41" rel="nofollow noreferrer">https://github.com/arduino/ArduinoCore-avr/blob/1.6.23/cores/arduino/Arduino.h#L40-L41</a></p>

<pre><code>#define HIGH 0x1
#define LOW  0x0
</code></pre>

<p>This means that <code>sizeof(HIGH)</code> is equivalent to <code>sizeof(0x1)</code>. <code>0x1</code> is an <a href="https://www.arduino.cc/reference/en/language/variables/constants/integerconstants/" rel="nofollow noreferrer">integer constant</a>. The default type of integer constants is <a href="https://www.arduino.cc/reference/en/language/variables/data-types/int" rel="nofollow noreferrer">int</a>. On an 8 bit microcontroller like the ATmega2560 used by your Arduino Mega, an int is 16 bits. </p>

<p>That is why <code>sizeof(HIGH)</code> returns 2 (16 bits / 8 bits/byte = 2 bytes).</p>
