C语言中阵列下标最大为多少以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
C语言中阵列下标最大为多少
阵列下标最大为阵列个数减一,例如定义:int a[5];则阵列a的下标最大为4;
因为在c语言中阵列的下标是从0开始的,这样从0到阵列个数减一,共阵列的总个数。
例如:
#includeint main(){ int a[5],i;定义一个大小为5的整型阵列。 for(i=0;i<=4;i++)依次对阵列的下标为0到4进行赋值 scanf("%d",&a[i]); for(i=0;i<=4;i++)依次输出各值 printf("%d ",a[i]); return 0; } /*执行结果:1 2 3 4 51 2 3 4 5 */
C语言中阵列下标有下限吗
C语言中阵列的下标是根据使用者定义的阵列大小来确定的,最小下标为0.
举例说明如下:
int a[5]={2,3,4,1,8}; 定义一个int型阵列,并对其进行初始化。则共有a[0]、a[1]、a[2]、a[3]、a[4]这5个元素,所以其下标的范围为0~5
更一般的就是
阵列a[N]的下标范围为0~N-1
c语言中一个整型阵列a[]的最大下标是多少啊
是[]中的数字减一,如:a[10],那么最大有效下标就是9,一般的时候要注意。
但是要注意的一点,不是如果a[10]就不行,可以,但是不合法,不能这样用,会造成,位置错误,一般都是记忆体的非法访问,段错误~~
为什么C语言中阵列下标越界不报错
未定义行为
出现什么后果都有可能
程式设计师的职责是保证不越界
而不是追问越界之后会发生什么
转自知乎:薛丰
C语言中阵列元素下标的资料型别
C:整形常量,字元形常量或整形表示式
c语言中一维阵列int a[10]={3},则 a[2]为多少啊!
int a[10]={3}就是int a[10]={3,0,0,0,0,0,0,0,0,0};
所以a[2]=0;
C语言 如何输出最大阵列下标
没有现成的,只能自己计算。 可以这样算。比如:
int a[50] ;
int n ;
n = sizeof(a) / sizeof(int) -1 ;
n就是能使用的最大下标
c语言中阵列下标可以是列举型别吗
可以是列举型别。
在C语言中,阵列下标要求是整型数值。一般是非负整型数值,但实际上,负数下标在C语言中也是允许的。
而列举型别,在C语言中有两种处理方式:
1 当列举型别中不包含负值时,按照无符号整型处理;
2 当列举型别中包含负值时,按照有符号整型处理;
无论是哪种形式,均符合C语言下标的要求。所以C语言阵列下标可以是列举型别。
c语言中阵列的下标起什么作用取值范围是多少
可以通过下标来获取值,但是C语言不执行阵列边界的有效性检查,发现如果阵列下标越界了,那么它会自动接着那块记忆体往后写。
最早的C编译器并不检查下标,而最新的编译器依然不对它进行检查。这项任务之所以很困难,是因为下标引用可以作为任意的指标,而不仅仅是阵列名。
作用于指标的下标引用的有效性既依赖于该指标当时恰好指向什么内容,也依赖于下标的值。结果,C的下标检查所涉及的开销比你开始想象的要多。编译器必须在程式中插入指令,证实下标的结果所引用的元素和指标表示式所指向的元素属于同一个阵列。这个比较操作需要程式中所有阵列的位置和长度方面的资讯,这将占用一些空间。当程式执行时,这些资讯必须进行更新,以反映自动和动态分配的阵列,这又将占用一定的时间。因此,即使是那些提供了下标检查的编译器通常也会提供一些开关,允许你去掉下标检查。
在C语言中,阵列就是指标,他只储存了地址。这就造成无法检查是否越界,但也给指标和阵列的互动操作提供极大的便利性。
C 的阵列根本就是一个指标的语法trick而已。 a[3] 就是 *(a+3),而此时a 就是一个地址,当然没有所谓边界限制。a[3] 等效于*(a+3)等效于*(3+a)
等效于3[a];
c语言中,阵列元素的下标下限为
是 65535,也就是你最大可以 int array[65536];
我亲自做过实验的,
如果你非要 int array[65537]的话,编译也不会出错,不过array[0]一定是等于array[65536]
分页:
1
23