Ashley’s right, but just to clarify:
There are signed and unsigned integers, which essentially means they can be negative (if signed), or not. There are also different numbers of bits which affects how big the number can be. For instance 8 bits unsigned (uint8_t) has a maximum of 256 values (2^8), which means 0 - 255. This can be very important to understand when dealing with something that can only take 8 bit integers, such as the LED values. If you try to use the wrong data type, undefined things happen.
Also, if you use a signed integer and increment it beyond its capacity, the effect is that it wraps around to its most negative value…! So for 8-bit signed, it goes from -127 to 127 (I think). If you increment 127, you get -127. Fun!
It’s somewhat platform dependent, but a “byte” type is considered to be an unsigned 8-bit int. This seems to hold in Arduino.
I think the default arduino “int” type is a signed 32-bit integer, so it holds lots more values than uint8. The compiler will try to tell you if you are passing the wrong type of value, but in some cases it will try to “guess” what you want and accept an int where you wanted a byte or uint8_t. If the int is larger than 255, it might crash, or it might give you the lower 8 bits of the int, which for 256 would be 0, so your leds won’t light up.
In order to explain that, uh… learning binary counting helps… this is getting complicated 
at 8 bits:
0 is represented as 00000000.
1 is 00000001.
2 is 00000010.
255 is 11111111. (see how it’s the max?)
at 16 bits, 255 is 0000000011111111
256 is 0000000100000000. See, the lower 8 bits are all 0.
That’s a little tangent, but a lesson in keeping your values only as large as they need to be or as will be accepted where they are going. I’ve personally made the mistake of looping up to 256 and having no leds light up.
And let’s not get started about big endian and little endian…