中易网

C语言数组定义的问题:A[n]是定义了n个元素还是定义了n+1个元素?

答案:4  悬赏:10  
解决时间 2021-01-15 22:08
  • 提问者网友:感性作祟
  • 2021-01-15 18:51
C语言数组定义的问题:A[n]是定义了n个元素还是定义了n+1个元素?
最佳答案
  • 二级知识专家网友:摆渡翁
  • 2021-01-15 19:44
A[n]—表示定义了一个含有n个元素的一维数组,数组元素的范围:A[0]~A[n-1],没有A[n]这个元素的。追问你好,我定义了A[1],并且确实输入了两个值到A[0]A[1],这怎么解释呢?并且也能够输出A[0]A[1]追答为什么呢,因为&A[1]这个地址在内存中是客观存在的,确实存在这个地址,这个没有错,你用scanf()函数这样赋值的话当然可以输出来啊。为什么C语言要规定没有A[n]这个值呢,这个涉及到范围边界问题。示例程序如下:
#include 
int main()
{
int a[3]={1,3,5}; //对数组初始化
int i;
for(i=0;i<=3;i++)
printf("a[%d]=%p
",i,&a[i]); //输出数组元素的地址a[3]的地址值比a[2]的地址值大4
printf("
");
for(i=0;i<=3;i++)
printf("a[%d]=%d
",i,a[i]); //输出数组元素的值,输出a[3]的值是个随机值
return 0;
}运行结果:

a[0]=0060FF00
a[1]=0060FF04
a[2]=0060FF08
a[3]=0060FF0C


a[0]=1
a[1]=3
a[2]=5
a[3]=3
追问能说一下范围边界的问题吗?有资料我了解一下也可以
全部回答
  • 1楼网友:野慌
  • 2021-01-15 22:34
这个表示定义n个元素
  • 2楼网友:醉吻情书
  • 2021-01-15 21:45
定义的时候 int A[n] 定义了n个元素
使用的时候 A[m] 代表第m+1个元素(起始位置是0)
例如一个队有10个人,报数,第一个人报0,第二个人报1,第三个人报2...第十个人报9
  • 3楼网友:西岸风
  • 2021-01-15 20:14
在C数组中 定义一个A(N) 就有N个元素,比如 A(1) 就代表一个元素,访问时 为A(0)

至于定义的A(1)中 访问 A(1)时,有返回,,那是因为返回的值是\0,,即空。或者,结束符,
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息