C语言局部变量的内存分配

#include<stdio.h>
int main(){
    for(int i = 0;i<10;i++){
        int a;
        printf("%x\n",&a);
    }
}

运行结果为:

64fe18
64fe18
64fe18
64fe18
64fe18
64fe18
64fe18
64fe18
64fe18
64fe18

程序中的循环块内的int a属于局部变量,存放在栈中,每次循环a所分配的地址是相同的。若要使每次分配的地址不同,应使用malloc函数。

int *a = (int *)malloc(sizeof(int));
posted @ 2021-08-27 11:34  苏小刚  阅读(368)  评论(0)    收藏  举报