There's two C Language flies.
main.c
:
// main.c
#include <stdio.h>
extern int * a;
extern int d;
int main(){
printf("==> a==>%p\n", a);
printf("==>&a==>%p\n", &a);
printf("==>%zd\n", *a);
printf("======================\n");
int c = 5;
a = &c;
printf("==> a==>%p\n", a);
printf("==>&a==>%p\n", &a);
printf("==>%zd\n", *a);
printf("======================\n");
d = 5;
printf("==>%d\n", d);
return 0;
}
global.c
:
// global.c
int b = 1;
int * const a = &b;
int const d = 1;
I run the command cc main.c global.c
and ./a.out
,Then I find the variable a
's value can be changed, and the variable d
's value can't be changed.
Why?