Integer variables store whole numbers. Wider integer types can hold larger values.

int `int` is the everyday whole-number type.
long `long` gives a wider whole-number type on many platforms.

Integer Types

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

int main(void) {
    int count = 7;
    long doubled = (long)count * 2;

    printf("count=%d\n", count);
    printf("doubled=%ld\n", doubled);
    return 0;
}
#include <stdio.h>

int main(void) {
    int count = 3;
    long doubled = (long)count * 2;

    printf("count=%d\n", count);
    printf("doubled=%ld\n", doubled);
    return 0;
}
#include <stdio.h>

int main(void) {
    int count = 12;
    long doubled = (long)count * 2;

    printf("count=%d\n", count);
    printf("doubled=%ld\n", doubled);
    return 0;
}
  1. count ← 7, doubled ← 14

    3int main(void) {4    int count→ 7 = 7; //@count=3, 125    long doubled→ 14 = (long)count7 * 2;67    printf("count=%d\n", count7);8    printf("doubled=%ld\n", doubled14);9    return 0;10}
    outputcount=7
    doubled=14
  1. count ← 3, doubled ← 6

    3int main(void) {4    int count→ 3 = 3;5    long doubled→ 6 = (long)count3 * 2;67    printf("count=%d\n", count3);8    printf("doubled=%ld\n", doubled6);9    return 0;10}
    outputcount=3
    doubled=6
  1. count ← 12, doubled ← 24

    3int main(void) {4    int count→ 12 = 12;5    long doubled→ 24 = (long)count12 * 2;67    printf("count=%d\n", count12);8    printf("doubled=%ld\n", doubled24);9    return 0;10}
    outputcount=12
    doubled=24

Follow the Values

  1. count starts at 7.
  2. The expression casts count to long.
  3. doubled = (long)count * 2.
  4. The default result is 14.
  5. The program prints count=7 and doubled=14. | count | doubled | | --- | --- | | 3 | 6 | | 7 | 14 | | 12 | 24 |

Exercise: integer_types.c

Reproduce doubled=14, then use count 3 and 12 to predict each doubled value.