猿问

关于C语言指针的理解!求大神指教!

假设一个变量  a=10   的地址为   x

*p=10       这里的p得到的值为x么?等价  p = &a  ?  

*p=10   的意思是不是p这个指针变量访问a这个变量地址里面的值  或者说是p变量的值是a的地址   *p的意思是访问这个地址的值

荒小北158
浏览 1717回答 3
3回答

DOUBLE_l

void main() { int a=10; int* p; p=&a;//把a的地址给P *p=10;//把10赋给p指向的变量 }

joecongmin

*p=10,为对指针的解引用,即给p指向的变量赋值为10,在此之前必须要先进行定义初始化,如 p=&a;p变量的值是a的地址   *p的意思是访问这个变量指向的地址X的值.

DOUBLE_l

没有的话(p=&a)就会出错,产生难以预料的后果,因为你不知道它刚开始指向哪个内存空间。一定要在指针变量确认指向之后才能赋值(例如*p=10;否则是没有意义的)。
随时随地看视频慕课网APP
我要回答