We 'C' programmers make choices about variables all the time. We design functions with concern about how & what to pass INTO function code, not to mention what to RETURN to the calling code. 'Global' variables are introduced here. Their scope has broader range than variables 'contained' in a function's body.
/* pgm21 source */
#include <stdio.h>
#include <string.h>
// 2 global variables
char *g_strpntr;
int g_numb;
void function1(void);
int main(void) {
char airplane[20]; // these two variables are 'private' to function 'main()'
int engines; // function1() has no idea they exist, because it receives NO arguments
strcpy(airplane, "Airbus A350 XWB");
g_strpntr = &airplane[0];
engines = 3;
g_numb = engines;
printf("\nThe %s airplane has %d engines, right?\n\n", airplane, engines);
function1();
printf("Oops. You're right. It's the Boeing 777 that has %d engines...\n\n", g_numb);
printf("(Honest, I thought the Airbus had %d engines.)\n", engines);
printf("\n");
return(0);
}
void function1() {
printf("Sorry, the %s only has 2 engines.\n\n", g_strpntr);
g_numb = 2;
}