Next: C Plus Plus Expressions, Previous: C Operators, Up: C

##### 15.4.1.2 C and C`++` Constants

gdb allows you to express the constants of C and C`++` in the following ways:

- Integer constants are a sequence of digits. Octal constants are specified by a leading ``0`' (i.e. zero), and hexadecimal constants by a leading ``0x`' or ``0X`'. Constants may also end with a letter ``l`', specifying that the constant should be treated as a `long` value.
- Floating point constants are a sequence of digits, followed by a decimal point, followed by a sequence of digits, and optionally followed by an exponent. An exponent is of the form: ``e[[+]|-]nnn`', where nnn is another sequence of digits. The ``+`' is optional for positive exponents. A floating-point constant may also end with a letter ``f`' or ``F`', specifying that the constant should be treated as being of the `float` (as opposed to the default `double`) type; or with a letter ``l`' or ``L`', which specifies a `long double` constant.
- Enumerated constants consist of enumerated identifiers, or their integral equivalents.
- Character constants are a single character surrounded by single quotes (`'`), or a number—the ordinal value of the corresponding character (usually its ascii value). Within quotes, the single character may be represented by a letter or by escape sequences, which are of the form ``\nnn`', where nnn is the octal representation of the character's ordinal value; or of the form ``\x`', where ``x`' is a predefined special character—for example, ``\n`' for newline.

  Wide character constants can be written by prefixing a character constant with ``L`', as in C. For example, ``L'x'`' is the wide form of ``x`'. The target wide character set is used when computing the value of this constant (see Character Sets).

- String constants are a sequence of character constants surrounded by double quotes (`"`). Any valid character constant (as described above) may appear. Double quotes within the string must be preceded by a backslash, so for instance ``"a\"b'c"`' is a string of five characters.

  Wide string constants can be written by prefixing a string constant with ``L`', as in C. The target wide character set is used when computing the value of this constant (see Character Sets).

- Pointer constants are an integral value. You can also write pointers to constants using the C operator ``&`'.
- Array constants are comma-separated lists surrounded by braces ``{`' and ``}`'; for example, ``{1,2,3}`' is a three-element array of integers, ``{{1,2}, {3,4}, {5,6}}`' is a three-by-two array, and ``{&"hi", &"there", &"fred"}`' is a three-element array of pointers.