1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <assert.h>

int main(int argc, char* argv[]) {
    int const n1 = 5;
    // n1 = 6;  // error: assignment of read-only variable ‘n1’

    const int n2 = 5;
    // n2 = 6; // error: assignment of read-only variable ‘n2’

    int    n0 = 4;
    int* a_n0 = &n0;  // type of a_n0 is int*

    const int* a_n2 = &n2;  // you may modify a_n2 but you may NOT modify *a_n2
    a_n2  = a_n0;  // assign address: 👌
    //*a_n2 = 9;     // assign value:   ❌
    
    // RULE
    // * Const protect the variable name with any asterisks that are after the 'const' word.
    // * You can switch the order of 'const' and the type if they are directly adjacent
    //   (i.e., with no intervening *).

    return EXIT_SUCCESS;
}
/* vim: set tabstop=4 shiftwidth=4 fileencoding=utf-8 noexpandtab: */

© Copyright 2021 Alexander J. Quinn         This content is protected and may not be shared, uploaded, or distributed.