我认为我接近了解指针概念的标志,但我遇到了一个我自己无法解决的问题...... 我试图通过函数修改结构:
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
。
为什么数组不会全局变化?
答案 0 :(得分:3)
值保持不变 - 它打印
0, 0
。为什么数组不会全局变化?
a
不是全局变量(它在main
中是本地的)a
中的任何内容 - 您只是使用其元素初始化structure1
function
更改structure1
- 但它与数组a
答案 1 :(得分:0)
使用这个,你正在调用一个给出值0,0:
的局部变量printf("%f, %f\n", a[0], a[1]);
试试这个
printf("%f, %f\n", structure1->lower[0], structure1->lower[1]);
全球通话。