nian念不忘
2021-07-27 22:05
采纳率: 94.4%
浏览 45
已结题

翁恺C语言进阶 指针问题

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

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

  • 收藏

3条回答 默认 最新

  • fire_at_will 2021-07-27 22: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;
    }
    
    已采纳该答案
    1 打赏 评论
  • 没事干写博客玩 2021-07-27 22:23

    理解指针,指针是一种变量类型,它指向一个地址,地址在x86下是4字节(32bit)整数,在x64下是8字节(64bit)整数,在c语言中&就是取地址符号,或与运算符号,地址是一个整数,所以可以赋值给指针类型变量,在c++中&还可以代表引用

    1 打赏 评论
  • fire_at_will 2021-07-27 23:33

    或者橙色部分这么解释:就是将指针对象化能够有存储空间(指针实体化)。。。我不太敢这么用

    打赏 评论

相关推荐 更多相似问题