當前位置:首頁 » 編程語言 » 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地址開始索引的……