首页 > 后端开发 > C++ > 正文

C语言中数组的限制是什么?

王林
发布: 2023-08-25 17:21:17
转载
1788 人浏览过

C语言中数组的限制是什么?

数组是一种数据结构,可以存储相同类型的固定大小的顺序元素集合。

数组用于存储数据集合,但更有用的是将数组视为相同类型的变量集合。

限制

以下是数组的限制:

  • 形成的数组将是同质的。也就是说,在整数数组中只能存储整数值,而在浮点数数组中只能存储浮点值,字符数组只能存储字符。因此,数组不能同时具有两种数据类型的值。

  • 在声明数组时,传递数组的大小是强制性的,且大小必须是一个常量。因此,可能存在内存不足或浪费的情况。

  • 在数组中插入或删除元素时需要进行移位操作。

  • 数组不检查边界:在C语言中,我们无法检查数组中输入的值是否超过了数组的大小。

  • 使用下标输入的数据超过了数组大小,将被放置在数组之外。通常是在数据或程序本身的顶部。

  • 这将导致不可预测的结果,至少可以这样说。而且,没有错误消息来警告程序员超出数组大小。在某些情况下,程序可能会挂起。

因此,以下程序可能会产生不期望的结果:

int a[10],i;
for(i=0;i<=20;i++)
a[i]=i;
登录后复制

Example

以下是显示两个数组之和的C程序:

 实时演示

#include<stdio.h>
void main(){
   //Declaring array with compile time initialization//
   int array1[5],array2[5],sum[5];
   //Declaring variables//
   int i;
   //Printing O/p using for loop//
   printf("Enter the values of array1 :</p><p>");
   for(i=0;i<5;i++){
      printf("array1[%d] : </p><p>",i);
      scanf("%d",&array1[i]);
   }
   printf("Enter the values of array2 :</p><p>");
   for(i=0;i<5;i++){
      printf("array2[%d] :</p><p>",i);
      scanf("%d",&array2[i]);
   }
   printf("Elements in the sum of array1 and array2 are:</p><p> ");
   for(i=0;i<5;i++){
      sum[i]=array1[i]+array2[i];
      printf("%d ",sum[i]);
   }
}
登录后复制

输出

当上述程序被执行时,它产生以下结果 −

Enter the values of array1 :
array1[0] :2
array1[1] :3
array1[2] :1
array1[3] :2
array1[4] :3
Enter the values of array2 :
array2[0] :4
array2[1] :5
array2[2] :3
array2[3] :2
array2[4] :1
Elements in the sum of array1 and array2 are: 6 8 4 4 4
登录后复制

以上是C语言中数组的限制是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板