我在下面声明了一个带有结构变量 arr[] 的结构 st,这是一个结构数组。我试图将值 1 分配给“num”变量,并将值 1 到 10 分配给数组 arr[] 的前 10 个位置的“val”变量。并且值 2 到“num”,值 1 到 10 到接下来 10 个位置的“val”。但是当我跟踪代码时,它不会将值分配给同一数组位置的相应 num 和 val 。如果我想将 num=1 和 val=4 分配给第 4 个结构,它会将 num=1 分配给第 3 个结构的 val,将 val=4 分配给第 4 个结构的 num。
我的查询与数组索引无关。
问题是:
如果我写了这些陈述
arr[2].num=1; arr[2].val=2;
({num,val})
预期结果是:arr[2]={1,2}
但实际结果是:arr[1]={num,1} arr[2]={2,val}
#include<iostream.h>
#include<conio.h>
class abc
{
public:
struct st
{
int num;
int val;
};
st arr[21];
void funct();
};
void abc::funct()
{
int i,j,k=1;
for(i=1;i<=2;i++)
{
for(j=1;j<=10;j++)
{
arr[k].num=i;
arr[k].val=j;
k++;
}
}
}
int main()
{
abc z;
z.funct();
return 0;
}