One of only two basic Latin lowercase letters — alongside 'j' — to carry a default diacritical mark (the dot above, known as a tittle), lowercase 'i' is the ninth letter of the alphabet and a high-frequency vowel accounting for roughly 7.0 % of characters in typical English corpora. It sits at ASCII code point 105 (0x69), 32 above its uppercase counterpart 'I' at 73 (0x49), maintaining the single-bit case offset (bit 5) shared by all ASCII A–Z / a–z pairs. Outside natural language, it is arguably the single most recognizable variable name in source code.
// Classic loop with 'i' indexfor (int i = 0; i < 10; i++) {printf("%d ", i);}// Output: 0 1 2 3 4 5 6 7 8 9
Canonical loop counter: In most mainstream programming languages, 'i' is the conventional iteration variable — for(int i = 0; …) — a practice tracing back to Fortran, where variables starting with i through n defaulted to integer type. This widespread adoption makes it one of the most typed single characters in source code.
Turkish locale case-mapping: In most locales, 'i' and 'I' form a straightforward pair, but Turkish and Azerbaijani introduce a separate dotless lowercase 'ı' and dotted uppercase 'İ', creating a four-way mapping. This is a well-documented source of bugs in locale-sensitive string operations — 'i'.toUpperCase() yields 'İ' rather than 'I' under Turkish locale rules.
Mathematical notation: In mathematics, italic 𝑖 conventionally denotes the imaginary unit (√−1), forming the basis of complex number notation (a + bi). In electrical engineering, 'j' often takes this role to avoid collision with the symbol for current (I), though the mathematical convention remains standard in pure mathematics and physics.
Diacritical variants: As a vowel, 'i' supports a broad array of accented forms — í (acute), ì (grave), î (circumflex), ï (diaeresis), ī (macron), ĩ (tilde), į (ogonek) — used across Romance, Baltic, and Polynesian orthographies. The Turkish dotless ı is classified as a separate letter rather than a diacritical variant of 'i'.
Canonical loop counter: In most mainstream programming languages, 'i' is the conventional iteration variable — for(int i = 0; …) — a practice tracing back to Fortran, where variables starting with i through n defaulted to integer type. This widespread adoption makes it one of the most typed single characters in source code.
Turkish locale case-mapping: In most locales, 'i' and 'I' form a straightforward pair, but Turkish and Azerbaijani introduce a separate dotless lowercase 'ı' and dotted uppercase 'İ', creating a four-way mapping. This is a well-documented source of bugs in locale-sensitive string operations — 'i'.toUpperCase() yields 'İ' rather than 'I' under Turkish locale rules.
Mathematical notation: In mathematics, italic 𝑖 conventionally denotes the imaginary unit (√−1), forming the basis of complex number notation (a + bi). In electrical engineering, 'j' often takes this role to avoid collision with the symbol for current (I), though the mathematical convention remains standard in pure mathematics and physics.
Diacritical variants: As a vowel, 'i' supports a broad array of accented forms — í (acute), ì (grave), î (circumflex), ï (diaeresis), ī (macron), ĩ (tilde), į (ogonek) — used across Romance, Baltic, and Polynesian orthographies. The Turkish dotless ı is classified as a separate letter rather than a diacritical variant of 'i'.