#include <stdio.h>

int allval1 = 0;          // 全局变量
int allval2 = 0;

static int sallval1 = 0;  // 静态全局变量
static int sallval2 = 0;

void displayAddresses() {
    static int sval1 = 0;    // 静态局部变量
    static int sval2 = 0;
    
    int val1 = 0;            // 局部变量
    int val2 = 0;

    printf("全局变量的存放顺序:\n");
    printf(" allval1: %p allval2: %p\n", (void*)&allval1, (void*)&allval2);

    printf("静态全局变量的存放顺序:\n");
    printf(" sallval1: %p sallval2: %p\n", (void*)&sallval1, (void*)&sallval2);

    printf("静态局部变量的存放顺序:\n");
    printf(" sval1: %p sval2: %p\n", (void*)&sval1, (void*)&sval2);

    printf("局部变量的存放顺序:\n");
    printf(" val1: %p val2: %p\n", (void*)&val1, (void*)&val2);
}

int main() {
    displayAddresses();
    return 0;
}
