我想我已经接近理解指针的概念了,但是我有一个问题我自己无法解决。。。
我试图通过一个函数来修改结构:

struct structure
{
    double lower[2];
};

void function(struct structure *structure1)
{
    structure1->lower[0] = 1;
    structure1->lower[1] = 2;
}

int main()
{
    double a[2] = {0, 0};

    struct structure structure1 = { {a[0], a[1]} };

    function(&structure1);
    printf("%f, %f\n", a[0], a[1]);

当我现在尝试打印时,
值保持不变-它打印a
为什么阵列没有在全球范围内改变?

最佳答案

值保持不变-它打印0, 0。为什么阵列没有在全球范围内改变?
数组不是全局变量(它在a中是局部的)
您在main中从未真正更改过任何内容-您只是使用其元素初始化a
您的structure1更改了function-但与数组无关

10-08 20:03