[character.seq.general]

# 16 Library introduction [[library]](./#library)

## 16.3 Method of description [[description]](description#character.seq.general)

### 16.3.3 Other conventions [[conventions]](conventions#character.seq.general)

#### 16.3.3.3 Type descriptions [[type.descriptions]](type.descriptions#character.seq.general)

#### 16.3.3.3.4 Character sequences [[character.seq]](character.seq#general)

#### 16.3.3.3.4.1 General [character.seq.general]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lib-intro.tex#L720)

The C standard library makes widespread useof characters and character sequences that follow a few uniform conventions:

- [(1.1)](#1.1)

  Properties specified as [*locale-specific*](#def:locale-specific "16.3.3.3.4.1 General [character.seq.general]") may change during program execution
by a call to setlocale(int, const char*) ([[clocale.syn]](clocale.syn "28.3.5.1 Header <clocale> synopsis")), or
by a change to a locale object,
as described in [[locales]](locales "28.3.3 Locales") and [[input.output]](input.output "31 Input/output library")[.](#1.1.sentence-1)

- [(1.2)](#1.2)

  The [*execution character set*](#def:character_set,execution "16.3.3.3.4.1 General [character.seq.general]") and
the [*execution wide-character set*](#def:wide-character_set,execution "16.3.3.3.4.1 General [character.seq.general]") are supersets of the basic literal character set ([[lex.charset]](lex.charset "5.3.1 Character sets"))[.](#1.2.sentence-1)
  The encodings of the execution character sets and
the sets of additional elements (if any) are locale-specific[.](#1.2.sentence-2)
  Each element of the execution wide-character set is encoded as
a single code unit representable by a value of type wchar_t[.](#1.2.sentence-3)
  [*Note [1](#note-1)*:
  The encodings of the execution character sets can be unrelated
to any literal encoding[.](#1.2.sentence-4)
 â *end note*]

- [(1.3)](#1.3)

  A [*letter*](#def:letter "16.3.3.3.4.1 General [character.seq.general]") is any of the 26 lowercase or 26uppercase letters in the basic character set[.](#1.3.sentence-1)

- [(1.4)](#1.4)

  The[*decimal-point character*](#def:character,decimal-point "16.3.3.3.4.1 General [character.seq.general]") is the locale-specific
(single-byte) character used by functions that convert between a (single-byte)
character sequence and a value of one of the floating-point types[.](#1.4.sentence-1)
  It is used
in the character sequence to denote the beginning of a fractional part[.](#1.4.sentence-2)
  It is
represented in [[support]](support "17 Language support library") through [[exec]](exec "33 Execution control library") and [[depr]](depr "Annex D (normative) Compatibility features") by a period,'.',
which is
also its value in the "C" locale[.](#1.4.sentence-3)

- [(1.5)](#1.5)

  A[*character sequence*](#def:character_sequence "16.3.3.3.4.1 General [character.seq.general]") is an [array object](dcl.array "9.3.4.5 Arrays [dcl.array]") *A* that
can be declared as*T A*[*N*],
where *T* is any of the typeschar,unsigned char,
orsigned char ([[basic.fundamental]](basic.fundamental "6.9.2 Fundamental types")), optionally qualified by any combination ofconst orvolatile[.](#1.5.sentence-1)
  The initial elements of the
array have defined contents up to and including an element determined by some
predicate[.](#1.5.sentence-2)
  A character sequence can be designated by a pointer value*S* that points to its first element[.](#1.5.sentence-3)
