By default, when gdb parses C or C++ expressions, strict type checking is used. However, if you turn type checking off, gdb will allow certain non-standard conversions, such as promoting integer constants to pointers.
Range checking, if turned on, is done on mathematical operations. Array indices are not checked, since they are often used to index a pointer that is not itself an array.