我想我已经接近理解指针的概念了,但是我有一个问题我自己无法解决。。。
我试图通过一个函数来修改结构:
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
-但与数组无关