在 C 编程中,什么是静态内存分配?


内存可以按照以下两种方式分配 −

静态内存分配

静态变量在一个已分配空间块中定义,且大小固定。一旦分配,就永远不能释放。

内存为程序中声明的变量分配。

  • 可使用“&”运算符获取地址,并可以将其分配给指针。

  • 内存是在编译时分配的。

  • 它使用栈来维护内存的静态分配。

  • 在这种分配中,一旦分配了内存,内存大小就无法更改。

  • 它的效率较低。

在运行程序之前就决定变量的最终大小,这将称为静态内存分配。它也称为编译时内存分配。

我们不能更改在编译时分配的变量的大小。

示例 1

静态内存分配通常用于数组。让我们看一个关于数组的示例程序 −

 实时演示

#include<stdio.h>
main (){
   int a[5] = {10,20,30,40,50};
   int i;
   printf (“Elements of the array are”);
   for ( i=0; i<5; i++)
      printf (“%d, a[i]);
}

输出

Elements of the array are
1020304050

示例 2

让我们考虑另一个示例,计算数组中所有元素的总和和乘积 −

 实时演示

#include<stdio.h>
void main(){
   //Declaring the array - run time//
   int array[5]={10,20,30,40,50};
   int i,sum=0,product=1;
   //Reading elements into the array//
   //For loop//
   for(i=0;i<5;i++){
      //Calculating sum and product, printing output//
      sum=sum+array[i];
      product=product*array[i];
   }
   //Displaying sum and product//
   printf("Sum of elements in the array is : %d
",sum);    printf("Product of elements in the array is : %d
",product); }

输出

Sum of elements in the array is : 150
Product of elements in the array is : 12000000

更新于: 09-Mar-2021

2K+ 浏览

开启你的 职业

完成课程获得认证

开始学习
广告