翁恺C语言进阶 指针问题

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

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

*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;
}

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

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