c内存分配笔记


程序代码如下:

#include <stdio.h>

int main(){
    int a[20],d[2],e[2],b[25];  
    char *g="nice to meet you";
    printf("&a=%#X\n", a);  
    printf("&d=%#X\n", d); 
    printf("&e=%#X\n", e);  
    printf("&b=%#X\n", b);  
    printf("&g=%#X\n", &g);  
    return 0;
}

输出结果

&a=0X23B74080
&d=0X23B74060
&e=0X23B74070
&b=0X23B740D0
&g=0X23B74078


从结果中分析得出,C语言在函数分配内存时,编译器会先进行优化,根据每个变量预计所占的内存长度大小进行排序,然后按从小到大进行入栈处理

指针变量g值在栈中只分配一个字节,nice to meet you是在代码的全局变量区保存的。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值