>And I've read that you should use sizeof to determine the size of a byte?
No, you read it wrong, a byte is a general term for any valid combination of eight bits (and a bit is a one or a zero)
('To determine the size of a byte' ?? A byte is just always eight bits, you cannot hesitate here)
An example of a byte would be: 00001010 (which is ten in decimal)
sizeof is used to get the number of bytes occupied by any valid datatype (including structs, your own classes), for example <strong>sizeof(int)</strong> will return the number of bytes an integer variable will take up in your computer's memory (on most implementations (this means not on all) this is 4, but as you already said, it can differ from the implementation)>I've read that the bits in a byte (in c++) are implementation or system dependent. What does that mean?
The C++ standard does not define the exact number of bytes a datatype has to consist of, however it just simply states things like: an integer variable will always have the natural size suggested by the architecture of the execution environment (32bits = 4 bytes for a 32bit processor, 16bits = 2 bytes for a 16bit processor, etc...)
In other words: The C++ standard defines minimum requirements for them :)
sizeof is an operator which is frequently used to ensure portability: at compile time the sizeof(<strong><something></strong>) 'instruction' will be replaced by a constant value. The portability you achieve using sizeof is of a major benefit because you don't have to hard-code each datatype's size and because it enhances portability ...
Hope this clarifies the whole thing!