撬杆运动员 2020-04-10 10:56 采纳率: 0%
浏览 143

求教一个指针的问题.谢谢!

写了一个简单的例子,代码中数组a赋值给指针state后,为什么a数组中的数值会保存指针的数值一直为1?
对指针state进行赋值会把数值给到数组a中?有点迷糊了。 数组a和指针state的地址共用了?

#include <stdio.h>
#include <stdlib.h>

static int a[16] = {0};

int main()
{
    while(1)
    {
        sleep(3);
        int *state = NULL;
        state = a;
        int tmp = state[1];
        if(tmp == 0)
        {
            printf("state = %d\n", tmp);
            state[1] = 1;
        }
        if(tmp == 1)
        {
            printf("state = %d\n", tmp);
        }
    }
    return 0;
}
  • 写回答

2条回答 默认 最新

  • 凡杰飞- 2020-04-10 11:36
    关注

    指針存只是一个地址,你把a赋给了state,state存的地址和a的地址是一样的,所以改变state的值其实就是在改变a

    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置