【发布时间】:2012-08-18 13:25:16
【问题描述】:
我在下面声明了一个结构体 st,它带有一个结构体变量 arr[],一个结构体数组。 我试图将值 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;
}
【问题讨论】: