线性表
#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呢
您的代码片段似乎不完整。为了更好地回答您的问题,请允许我整理一下代码,给出一个完整的示例。
#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`,并在代码中更新它的值以反映数组的实际长度。 根据你提供的代码片段,似乎没有对结构体中的 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]