Adapted from: “Beej’s Guide to C Programming” by Brian (Beej Jorgensen) Hall: Beej’s Guide to C Programming: 5.1 Memory and Variables
Program that Demonstrates Printing out the Address of a Variable¶
#include <stdio.h>
int main(void)
{
int i = 10;
printf("The value of i is %d\n", i);
printf("And its address is %p\n", (void *)&i);
}Explanation of the Above Code¶
The program above demonstrates how to print out the address of a variable in C. The program does the following:
It includes the standard input-output library
stdio.hto use theprintffunction.It defines the
mainfunction, which is the entry point of the program.It declares an integer variable
iand initializes it with the value10.It prints the value of
iusing theprintffunction with the format specifier%d, which is used for integers.It prints the address of
iusing theprintffunction with the format specifier%p, which is used for pointers. The address is obtained by using the address-of operator&oni. The address is cast to(void *)to match the expected type for%p.
Compile and Run Code¶
Use Python to Change to Working Directory¶
import os
root_dir = os.getcwd()code_dir = root_dir + "/" + "C_Code"os.chdir(code_dir)build_command = os.system("gcc -o section_5_1_memory_and_variables section_5_1_memory_and_variables.c")exec_status = os.system("./section_5_1_memory_and_variables")The value of i is 10
And its address is 0x7ffcb70d575c