数组是一种数据结构,可以存储相同类型的固定大小的顺序元素集合。
数组用于存储数据集合,但更有用的是将数组视为相同类型的变量集合。
限制以下是数组的限制:
形成的数组将是同质的。也就是说,在整数数组中只能存储整数值,而在浮点数数组中只能存储浮点值,字符数组只能存储字符。因此,数组不能同时具有两种数据类型的值。
在声明数组时,传递数组的大小是强制性的,且大小必须是一个常量。因此,可能存在内存不足或浪费的情况。
在数组中插入或删除元素时需要进行移位操作。
数组不检查边界:在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 :
"); for(i=0;i<5;i++){ printf("array1[%d] :
",i); scanf("%d",&array1[i]); } printf("enter the values of array2 :
"); for(i=0;i<5;i++){ printf("array2[%d] :
",i); scanf("%d",&array2[i]); } printf("elements in the sum of array1 and array2 are:
"); for(i=0;i<5;i++){ sum[i]=array1[i]+array2[i]; printf("%d ",sum[i]); }}
输出当上述程序被执行时,它产生以下结果 −
enter the values of array1 :array1[0] :2array1[1] :3array1[2] :1array1[3] :2array1[4] :3enter the values of array2 :array2[0] :4array2[1] :5array2[2] :3array2[3] :2array2[4] :1elements in the sum of array1 and array2 are: 6 8 4 4 4
以上就是c语言中数组的限制是什么?的详细内容。