当前位置:首页 » 编程语言 » c语言数组的下标总是从1开始吗
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言数组的下标总是从1开始吗

发布时间: 2022-03-15 03:15:23

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

在其它一些语言中,情况可能有所不同,例如在BASIC语言中数组a[MAX]的元素是从a[1]到a[MAX],在Pascal语言中则两种方式都可行。 注意:a[MAX]是一个有效的地址,但该地址中的值并不是数组a的一个元素。 上述这种差别有时会引起混乱,因为当你说“数组中的第一个元素”时,实际上是指“数组中下标为。的元素”,这里的“第一个”的意思和“最后一个”相反。 因为指针和数组几乎是相同的,因此你可以定义一个指针,使它可以象一个数组一样引用另一个数组中的所有元素,但引用时前者的下标是从1开始的: /*don't do this!!*/ int a0[MAX], int *a1=a0-1; /*&a0[-1)*/ 现在,a0[0]和a1[1)是相同的,而a0[MAX-1]和a1[MAX]是相同的。然而,在实际编程中不应该这样做,其原因有以下两点: 第二,这种方式背离了C语言的常规风格。

㈡ c++语言程序设计 什么是数组数组下标是从多少开始的那句话

在C语言中,对于数组你只需要理解三件事。
1.C语言中有且只有一维数组。
所谓的n维数组只是一个称呼,一种方便的记法,都是使用一维数组来仿真的。
C语言中数组的元素可以是任何类型的东西,特别的是数组作为元素也可以。所以int a[3][4][5]就应该这样理解:a是一个拥有3个元素的数护川篙沸蕻度戈砂恭棘组,其中每个元素是一个拥有4个元素的数组,进一步其中每个元素是拥有5个整数元素的数组。
2.数组的元素个数,必须作为整数常量在编译阶段就求出来。
int i;int a;//不合法,编译不会通过。
你可以试试这个:int a[];
编译器无法推断,所以会判错说“array size missing in a”之类的信息。不过在最新的C99标准中实现了变长数组
3.对于数组,可以获得数组第一个(即下标为0)元素的地址(也就是指针),从数组名获得。

㈢ C语言:C语言数组的下标总是从( )开始,不可以为负数;构成数组各个元素具有相同的( )。

这是在数组中是不允许的!数组下标(默认)是按0,1,2,3,4......这样的

㈣ C语言数组如 何定义起始下标 是不是若不定义一般起始下标都是从0开始计数的

C语言数组无法定义起始下标,只能是从0开始,到(元素个数-1)结束,超越这个范围就是越界访问。 C++和C#可以实现自定义起始下标。

㈤ 为什么在C语言定义数组时下标必须从零开始呢

C规定的,没什么原因,其他语言定义是从1开始的,只是有点方便

㈥ C语言中的下标可以从1开始吗

这个是微软的编程软件设计时规定好的,现在都约定俗成了,几乎全球所有的编程软件也定义的是这样的规范,数组的下标都是从0开始的!

㈦ C语言中,数组可以从下标为1开始赋值吗

不可以。
比如我定义int型数组。
int
arr[10]
我没有初始化以前数组中每个元素都是不确定的。
如果在VS2010环境下,我定义上面的数组,然后输出arr[0],发现会编译错误。
可以考虑这么定义数组
int
arr[100]={0}
这样数组每个元素都是0
关注微信公众号:依法编程

㈧ c语言数组题 有一个数组,数据元素从下标为1的位置开始存放,试编写一个算法:删除数组

#include<stdio.h>

intshanchu(int*a,intn)
{
intt,i,j;
for(i=1;i<=n;i++)
{
if(a[i]%2==0)
{
break;
}
}
for(j=i;j<=n-1;j++)
{
a[j]=a[j+1];
}
returnn-1;
}
voidprint(int*a,intn)
{
printf("输出结果为: ");
inti;
for(i=1;i<=n;i++)
{
printf("%d",a[i]);
}
printf(" ");
}
intmain()
{
inta[100],n,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
print(a,n);
n=shanchu(a,n);
print(a,n);
return0;
}

有问题请追问。代码已给出

㈨ 为什么C语言的数组下标从0开始而不是从1开始

一种约定。
如果最初约定从1开始 那也没什么
至于为什么会选择从0开始,最重要的原因 我觉得是方便
对于任意的a[i] 取值的时候 都是等效于*(a+i)
a是数组首地址,这样访问第一个元素 *(a+0) 就不需要任何偏移了。

㈩ 在C程序的数组中为什么下标要从0开始呢从1开始不行吗

可以,但是浪费了内存,比如开辟100个存储,int array[100]:是从0~99,而你是从一开始,必须是int array[101]了,之所以下标从0是因为PC的内存他的硬件实实在在就是从0地址开始索引的……