查看变量地址

在Linux中写一个程序,里面全局变量,局部变量,static,const,常数,数组,输出这些变量的地址(包括赋值的和没有赋值的,各类数据类型);

代码如下:

#include <stdio.h>

int a;
int b = 1;
int const c = 1;
int const x;
static int d;
static int e = 1;

char str[3];
char str1[] = {'h','i'};


int main()
{
    int f;
    int g = 1;
    int const h = 1;
	int const y ;
    static int j;
    static int k = 1;
    char str2[3];
    char str3[]={'h','i' };
    printf("uninit global variable addr%p\n",&a);
	
    printf("init global variable addr%p\n",&b);

    printf("init const global variable addr%p\n",&c);
    
	printf("uninit const global variable addr%p\n",&x);

    printf("uninit static global variable addr%p\n",&d);

	printf("init static global variable addr%p\n",&e);

    printf("uninit  global array addr%p\n",str);

    printf("init  global array addr%p\n",str1);

	printf("uninit local variable addr%p\n",f);

    printf("init local variable addr%p\n",g);

	printf("init const local variable addr%p\n",h);

	printf("uninit const local variable addr%p\n",y);

	printf("uninit static local variable addr%p\n",j);

    printf("init static local variable addr%p\n",k);

    printf("uninit  local array addr%p\n",str2);

    printf("init  local array addr%p\n",str3);


    return 0;
}

     


结果如下所示:

由结果可以看出

常全局变量在一个区域

局部变量、数组(包括已初始化和未初始化)、常局部变量,在同一个区域

静态局部变量、常全局变量、静态全局变量、全局数组(包括已初始化和未初始化)在一片区域,但是已经初始化的在未初始化的之前。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值