nian念不忘 2021-07-27 14:05 采纳率: 88.9%
浏览 54
已结题

翁恺C语言进阶 指针问题

请教一下指针
int * a=&i //是不是代表:a指向i的地址,*a是i变量的值
还有时候int *a=数字 //代表什么意思
还有
img
*a=25是啥意?

还有这个橙色的,怎么定义的大小,不是一个指针吗,给它赋值不是地址或者变量 吗,怎么是存储大小?
img

  • 写回答

3条回答 默认 最新

  • fire_at_will 2021-07-27 14:25
    关注

    *a=25
    代表的是指针赋值
    其实本质是指针指向的对象赋值
    int *a=&i(a->i)后
    *a=25 和 i=25 效果是一样的
    试试运行下面的代码你就理解了

    #include<stdio.h>
    int main(void)
    {
    int i=0;
    int *a=&i;
    printf("%d\n",*a);
    *a=25;
    printf("%d\n",*a);
    printf("%d\n",i);
    return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    nian念不忘 2021-07-27 14:33

    麻烦看一下,我后来加的,谢谢谢谢

    回复
    fire_at_will 回复 nian念不忘 2021-07-27 14:47

    不好意思 我看不到图。。。所以你的橙色。。。不过 我可以解释给你他指针的“=”几种玩法
    指针赋值的本质是给它指向的对象赋值
    int i;
    int *a=&i;
    *a=11;
    但不可以这么写
    int *a=9;//这就是非法了
    但你可以这么写
    int *a;
    int *b=a;//这个代表着指针b指向指针a

    所以说,指针是指向对象或者另一个指针,而对它而言,它本身是不能赋值的,指针赋值是赋值给他背后的对象,所能赋值的大小也就由对象的大小决定了

    回复
    fire_at_will 回复 nian念不忘 2021-07-27 14:47

    不好意思 我看不到图。。。所以你的橙色。。。不过 我可以解释给你他指针的“=”几种玩法
    指针赋值的本质是给它指向的对象赋值
    int i;
    int *a=&i;
    *a=11;
    但不可以这么写
    int *a=9;//这就是非法了
    但你可以这么写
    int *a;
    int *b=a;//这个代表着指针b指向指针a

    所以说,指针是指向对象或者另一个指针,而对它而言,它本身是不能赋值的,指针赋值是赋值给他背后的对象,所能赋值的大小也就由对象的大小决定了

    回复
    展开全部12条评论
查看更多回答(2条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 8月3日
  • 已采纳回答 7月27日
  • 修改了问题 7月27日
  • 创建了问题 7月27日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部