请问 指针是指向地址的还是指向那个变量值的.
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 11:38:47
请问 指针是指向地址的还是指向那个变量值的.
指针是一个变量,他的值是可以变得,他里面存的是一个地址
假设我们定义一个指针 int *p; int a;
如果p = &a;
这个时候我们知道,a是一个变量,那么内存必定要给他分配一个地址来存储他,p指向a的意思就是p里面存的就是a的地址.所以p就是一个存着地址的变量.
既然我们知道p里面存着a的地址,那么我们要找a就非常方便了,*p就表示p存的地址里面的值,也就是a的值.
这句话怎么理解呢?
1.p存的是地址,比作你住的地方,那么*p就表示你了,因为*p就表示这个地址里面的数据.
这个时候*p和a是完全一样的了,假如你要改变a的值.a = a+1和*p =*p+1是完全一样的,都能达到对a进行操作的目的.但是*p =*p+1和*p = *(p+1)是不一样的,这个用的时候要特别注意,因为p里面是地址,那么*(p+1)就表示这个地址加1后,地址加1那不就是换了一个地址吗?换了一个地址后里面存的就肯定不是a了,就像可能是你的邻居了.因为地址变了,所以就是p变了,因此*也变了,这个地方有点难理解,楼主多琢磨琢磨.
总结一句话:指针是一个万能钥匙,可以指向任何一个地址,可以改变任何一个地址里面的数据(只读的除外),因此使用指针要注意安全,以免发生异常.
假设我们定义一个指针 int *p; int a;
如果p = &a;
这个时候我们知道,a是一个变量,那么内存必定要给他分配一个地址来存储他,p指向a的意思就是p里面存的就是a的地址.所以p就是一个存着地址的变量.
既然我们知道p里面存着a的地址,那么我们要找a就非常方便了,*p就表示p存的地址里面的值,也就是a的值.
这句话怎么理解呢?
1.p存的是地址,比作你住的地方,那么*p就表示你了,因为*p就表示这个地址里面的数据.
这个时候*p和a是完全一样的了,假如你要改变a的值.a = a+1和*p =*p+1是完全一样的,都能达到对a进行操作的目的.但是*p =*p+1和*p = *(p+1)是不一样的,这个用的时候要特别注意,因为p里面是地址,那么*(p+1)就表示这个地址加1后,地址加1那不就是换了一个地址吗?换了一个地址后里面存的就肯定不是a了,就像可能是你的邻居了.因为地址变了,所以就是p变了,因此*也变了,这个地方有点难理解,楼主多琢磨琢磨.
总结一句话:指针是一个万能钥匙,可以指向任何一个地址,可以改变任何一个地址里面的数据(只读的除外),因此使用指针要注意安全,以免发生异常.
请问 指针是指向地址的还是指向那个变量值的.
指针变量指向的变量的值变了,指针变量会不会变?
请问,指南针的红色指针为什么指向北方呢
灵敏电流计的指针方向十指向正极还是负极
C语言中,*pa,*pb是指向a,b的指针.直接将a,b的值互换,为什么指针还是指向原来的值啊?
p->next=NULL是将指针P指向的next置空还是将P的下一个指针指向空
急.请问一下,指向函数的指针有什么特殊的作用吗?为什么要有指向函数的指针呢?
指南针的指针静止时,是指向地磁北极还是地理北极?
一个链表不知道头结点,有一个指针指向其中一个结点,请问如何删除这个指针指向的结点.
指针指向的变量?是怎样的定义?
指针“变量里面的值” 和 “指针地址的值” 和 “指针指向的值” 有什么区别?
定义一个返回值是指向函数的指针且有一个指向函数的指针作为参数的函数?