当前位置:首页 > 科技 > 正文

c语言数组下标为什么从0开始,c语言数组下标从0开始

c语言数组下标为什么从0开始,c语言数组下标从0开始

c语言数组问题,求大神解答! A a[0]+4 错 a[0]是第一个元素,这表示首元素加4的值 B *a+4 错 *a同a[0]是一个意思,a是数组名,首地址,*a就...

c语言数组问题,求大神解答!

A a[0]+4 错 a[0]是第一个元素,这表示首元素加4的值 B *a+4 错 *a同a[0]是一个意思,a是数组名,首地址,*a就表示首元素 C *(a+4) 正确,等同于a[4] 。

显然错误,a[i]=a[i+1];有问题,等于 x 的数被后面替换了,但是后面的那个数字还在那里。

char *p[2]是一个指针数组,*p[0], *p[1]两个元素,编译之后是两个地址值。p[i]=ch[i]中,是指针操作,也就是地址操作。ch[i]是一个多字节的首地址,编译后值为数组元素的地址ch[i][0]。

例如char c[6]={a,b,c,d,e},数组c[6]中共6个元素,a,b,c,d,e,才5个,当然后面C语言还给它加了一个0,即这个数组是以0结束的,所以它是字符串数组。

长度应该是元素个数,也就是3,5,8,8,9,12,9,答案明显是占用内存空间的打消了:int一般是16位,也就是2个字节 float一般是32位,也就是4个字节 char一般1个字节 上述数量对应乘以类型占用的空间就可以了。

选b.strlen是测量长度的函数,遇到\o停止。此题中有a,b,c,d,\n,0,1,2,\1,\\共十个数,所以选b。PS:strlen(char *)作用:检测字符串实际长度。

C语言数组的下标总是从0开始吗?

是的,对数组a[MAX](MAX是一个编译时可知的值)来说,它的第一个和最后一个元素分别是a[o]和aLMAX-1)。

题目应该是第一个元素下标定义吧,数组第一个下标定义是0,举例:int a[3],第一个元素就是a[0]。int a[3][3],第一个元素就是a[0][0]。

因为C语言规定数组的下标都是从0开始的,所以其下限就是为0。

不论在任何编程语言,如果没有定义起始下标默认都是从0开始 在C语言中不能自定义起始下标,要想下标与数组元素的序号一一对应只能舍弃第一个存储空间。

c语言中,数组元素的下标下限为0。数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。

C语言的下标为什么从0开始

1、因为C语言规定数组的下标都是从0开始的,所以其下限就是为0。

2、数组寻址在机器层面就是基地址加偏移量,偏移量为0时是第一个元素的地址,因此从计算机角度看,下标从0开始再自然不过了,因此C选择这样了。

3、C语言在工程应用中应用广泛,就是因为他对硬件的支持效率高,在早期硬件不是很高级的时候,将数组下标选为0,大大提高访问数组速度,而且还省去了不必要的寄存器占用。

最新文章