c内存分配笔记

    xiaoxiao2021-03-25  95

    程序代码如下:

    #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是在代码的全局变量区保存的。

    转载请注明原文地址: https://ju.6miu.com/read-21098.html

    最新回复(0)