A char stores one character, and it also has an integer code.

char `char` stores a single character value.
code Printing a `char` with `%d` shows its numeric character code.

Characters

grade
characters.c
Replay: real traced execution (multi-file project)
#include <stdio.h>

int main(void) {
    char grade = 'B';
    int code = grade;

    printf("grade=%c\n", grade);
    printf("code=%d\n", code);
    return 0;
}
#include <stdio.h>

int main(void) {
    char grade = 'A';
    int code = grade;

    printf("grade=%c\n", grade);
    printf("code=%d\n", code);
    return 0;
}
#include <stdio.h>

int main(void) {
    char grade = 'C';
    int code = grade;

    printf("grade=%c\n", grade);
    printf("code=%d\n", code);
    return 0;
}
  1. grade ← B, code ← 66

    3int main(void) {4    char grade→ B = 'B'; //@grade='A', 'C'5    int code→ 66 = gradeB;67    printf("grade=%c\n", gradeB);8    printf("code=%d\n", code66);9    return 0;10}
    outputgrade=B
    code=66
  1. grade ← A, code ← 65

    3int main(void) {4    char grade→ A = 'A';5    int code→ 65 = gradeA;67    printf("grade=%c\n", gradeA);8    printf("code=%d\n", code65);9    return 0;10}
    outputgrade=A
    code=65
  1. grade ← C, code ← 67

    3int main(void) {4    char grade→ C = 'C';5    int code→ 67 = gradeC;67    printf("grade=%c\n", gradeC);8    printf("code=%d\n", code67);9    return 0;10}
    outputgrade=C
    code=67

Follow the Values

  1. grade starts as B.
  2. code = grade stores the character code.
  3. On this local run, B has code 66.
  4. The program prints grade=B and code=66. | grade | local verified code | | --- | --- | | A | 65 | | B | 66 | | C | 67 |

Exercise: characters.c

Reproduce code=66, then use the locally verified grades A and C to predict each code.