a13766971255 发表于 2023-4-24 10:56:19

线性表

#include <stdio.h>
#define maxsize 50
typedef struct {
    int data;
    int length;
}stu;
    L.data=1;
    L.data=2;
    L.data=3;
这个length的长度不应该是3吗?
为什么里面length的长度是16呢

isdkz 发表于 2023-4-24 10:58:09

您的代码片段似乎不完整。为了更好地回答您的问题,请允许我整理一下代码,给出一个完整的示例。

#include <stdio.h>
#define maxsize 50

typedef struct {
    int data;
    int length;
} stu;

int main() {
    stu L;
    L.data = 1;
    L.data = 2;
    L.data = 3;
    L.length = 3;

    printf("L.length: %d\n", L.length);
    return 0;
}


在这个示例中,我们创建了一个名为`stu`的结构体,它包含一个整数数组`data`和一个整数`length`。接着,我们定义了一个名为`L`的`stu`类型变量。然后我们分别将1、2、3赋值给数组的前三个元素,并将`length`设置为3。最后,我们打印出`L.length`的值。

这个程序将输出:

L.length: 3


这是预期的结果,因为我们将`L.length`设置为了3。如果在您的代码中`length`值为16,那么可能是由于未初始化`length`导致的。请确保正确初始化`length`,并在代码中更新它的值以反映数组的实际长度。

陶远航 发表于 2023-5-20 11:11:04

根据你提供的代码片段,似乎没有对结构体中的 length 成员变量进行初始化操作。因此,length 的值是一个未知的随机值,而不是3或16。
如果在初始化结构体中的整型数组 data 同时也给 length 赋初值为 3,那么这个结构体会像这样:

typedef struct {
    int data;
    int length;
}stu;

int main() {
    stu L;
    L.data = 1;
    L.data = 2;
    L.data = 3;
    L.length = 3; //添加初始化
    return 0;
}
这样你会得到 L.length 的正确值 3,表示数组中有三个元素。
页: [1]
查看完整版本: 线性表