如何在C中访问全局2d数组的元素?
我是C的新手。我声明了一个2D全局数组:如何在C中访问全局2d数组的元素?,c,multidimensional-array,global-variables,C,Multidimensional Array,Global Variables,我是C的新手。我声明了一个2D全局数组: int allhospitalsdata[4][3] = {{1,100,0},{2,200,0},{3,300,0},{4,400,0}}; 然后我尝试访问某个索引处的值,如下所示: if (allhospitalsdata[hospitalid][3]<allhospitalsdata[hospitalid][2]) { //do something } else { //do another thin
int allhospitalsdata[4][3] = {{1,100,0},{2,200,0},{3,300,0},{4,400,0}};
然后我尝试访问某个索引处的值,如下所示:
if (allhospitalsdata[hospitalid][3]<allhospitalsdata[hospitalid][2])
{
//do something
}
else
{
//do another thing
}
if(allhospitalsdata[hospitalid][3]因为您正在访问allhospitalsdata[hospitalid]
的第4个元素,该元素只包含三个元素。事实上,C并不阻止您访问无效索引处的数组。您必须自己处理。在allhospitalsdata[hospitalid][3]中会发生这种情况
(它不是数组的一部分!)存储了一些未定义的内容,通过观察if
条件,这些内容可能大于或等于零。这就是它进入else
块的原因
请注意,C中的数组始终为零索引,因此allhospitalsdata[0]
引用了第一家医院的数据
我不知道您想要实现什么,但是将2D数组想象成一个包含行和列的表。对于a[x][y]
,x
用于访问行,而y
用于访问该行中的列
如果您还有其他问题,请澄清。包含3个元素的数组的索引为0、1和2。但是,3是不允许的。