Sharing its circular form with the digit zero — an overlap that has influenced typographic conventions in technical and computing contexts for decades — lowercase 'o' is the fifteenth letter of the Latin alphabet and a mid-back rounded vowel accounting for roughly 7.5 % of characters in typical English corpora. It plays a distinctive role in programming as the letter behind octal notation prefixes and format specifiers. Its ASCII code point is 111 (0x6F), 32 above its uppercase counterpart 'O' at 79 (0x4F), maintaining the single-bit case offset (bit 5) shared by all ASCII A–Z / a–z pairs.
// Big O complexity comments// O(1) - constant: array access// O(n) - linear: single loop// O(n log n) - sorted: merge sort// O(n²) - quadratic: nested loops
Octal notation: In C-family printf-style formatting, %o outputs an unsigned integer in octal representation. For octal literals, C uses a leading zero prefix (0777), while Python 3, JavaScript (ES6+), and Rust adopted the explicit 0o prefix (0o777) specifically to reduce confusion with decimal numbers — the ambiguous leading-zero syntax having been a persistent source of silent bugs in codebases that parse numeric input.
O/0 visual disambiguation: The near-identical appearance of 'o' and the digit '0' in many typefaces prompted the widespread adoption of the slashed zero and dotted zero in programming fonts, terminal displays, and aviation typography. Python's PEP 8, for instance, explicitly discourages uppercase 'O' as a single-character variable name for this reason, and programming-oriented fonts like Fira Code and JetBrains Mono take care to separate the two glyphs clearly.
Phonetic range: In English alone, 'o' maps to an unusually wide spread of vowel sounds — /ɒ/ in 'hot', /oʊ/ in 'go', /ʌ/ in 'son', /uː/ in 'do', /ɜː/ in 'word' — making it one of the more phonetically unpredictable vowels for learners of English and a frequent subject in phonics and ESL instruction.
Diacritical variants: As a vowel, 'o' supports a broad family of accented forms — ó (acute), ò (grave), ô (circumflex), ö (diaeresis), ő (double acute), õ (tilde), ō (macron), ọ (dot below), and ø (stroke). Of these, ø functions as a distinct letter in Danish and Norwegian rather than an accented variant, and ö is a separate letter in Swedish, Finnish, and Turkish alphabets.
Octal notation: In C-family printf-style formatting, %o outputs an unsigned integer in octal representation. For octal literals, C uses a leading zero prefix (0777), while Python 3, JavaScript (ES6+), and Rust adopted the explicit 0o prefix (0o777) specifically to reduce confusion with decimal numbers — the ambiguous leading-zero syntax having been a persistent source of silent bugs in codebases that parse numeric input.
O/0 visual disambiguation: The near-identical appearance of 'o' and the digit '0' in many typefaces prompted the widespread adoption of the slashed zero and dotted zero in programming fonts, terminal displays, and aviation typography. Python's PEP 8, for instance, explicitly discourages uppercase 'O' as a single-character variable name for this reason, and programming-oriented fonts like Fira Code and JetBrains Mono take care to separate the two glyphs clearly.
Phonetic range: In English alone, 'o' maps to an unusually wide spread of vowel sounds — /ɒ/ in 'hot', /oʊ/ in 'go', /ʌ/ in 'son', /uː/ in 'do', /ɜː/ in 'word' — making it one of the more phonetically unpredictable vowels for learners of English and a frequent subject in phonics and ESL instruction.
Diacritical variants: As a vowel, 'o' supports a broad family of accented forms — ó (acute), ò (grave), ô (circumflex), ö (diaeresis), ő (double acute), õ (tilde), ō (macron), ọ (dot below), and ø (stroke). Of these, ø functions as a distinct letter in Danish and Norwegian rather than an accented variant, and ö is a separate letter in Swedish, Finnish, and Turkish alphabets.