C 对与结构有关的陈述的意义感到困惑

C 对与结构有关的陈述的意义感到困惑,c,C,我很难理解这句话的意思,有人能给我解释一下吗 这是我拥有的结构: struct dataT { int m; }; struct stack { int top; struct dataT items[STACKSIZE]; } st; 这就是我感到困惑的立场。我不太明白这是什么意思: st.items[st.top].m st:结构堆栈类型的对象st.top:堆栈顶部st.items:堆栈项数组 st.items[st.top]:堆栈的顶部项目st.items[s

我很难理解这句话的意思,有人能给我解释一下吗

这是我拥有的结构:

struct dataT
{
    int m;
};

struct stack
{
    int top;
    struct dataT items[STACKSIZE];
} st;
这就是我感到困惑的立场。我不太明白这是什么意思:

st.items[st.top].m
st:结构堆栈类型的对象
st.top:堆栈顶部
st.items:堆栈项数组
st.items[st.top]:堆栈的顶部项目
st.items[st.top].m:成员
m
堆栈顶部项目的

如果将
3
5
推入堆栈中,它看起来像(堆栈向下增长)


此语句从
struct stack
检索
st.top
th元素的值。换句话说,如果您的实现以递减的方式递增
struct stack
top
变量,那么它将检索最后一个推送的元素

点(.)用于访问结构的元素

st.items-访问items[STACKSIZE]数组

st.top—访问st的顶部并用作索引

而items数组包含dataT,您可以使用

st.items[st.top].m

在这份声明中

st.items[st.top].m
st表示类型为
struct stack
的对象,因为它是以这种方式定义的

struct stack
{
   //...
} st;
由于
st
被定义为具有结构类型,因此它具有名为
items
的数据成员,以下是结构定义本身

struct stack
{
    int top;
    struct dataT items[STACKSIZE];
};
所以记录
st.items
意味着访问对象
st
的数据成员
items
。结构的此数据成员定义为数组

struct dataT items[STACKSIZE];
使用
STACKSIZE
元素。 因此,记录
st.items[st.top]
意味着使用数组
items
的索引
st.top
访问元素。数组的每个元素依次具有类型
struct dataT
此结构具有数据成员
m

struct dataT
{
    int m;
};
从而记录

st.items[st.top].m

表示访问元素的数据成员
m
,该元素具有数组
的索引
st.top
,该数据成员位于tirn对象
st

的数据成员中,努力使堆栈可视化。
struct dataT
{
    int m;
};
st.items[st.top].m