您的位置:首页 > 编程语言 > C语言/C++

C语言指针,int a=1; int *p; 其中p=&a和*p=&a有什么区别?p的值是否相同?

2020-03-05 18:25 302 查看

指针本质就是存储内存地址的一个变量。所以指针可以指向某个变量在内存中存储的单元格嘛。变量去访问单元格最后也是编译器通过变量名和地址一一对应去查找的。而指针里面直接存储的就是地址,所以直接可以访问地址所对应的单元格。不知道楼主说的是说明情况。
所以几种可能的都说一下:测试代码
#include “stdio.h”
#include “conio.h”
main()
{
int a=1;
int *p=&a;
int *q,*r;
q=&a;
*r=&a;
printf(“p=%d,q=%d,r=%d”,p,q,r);
getch();
}
int *p=&a ; 这是很标准的,把a的地址个p指针变量。int *q;q=&a;这也是很标准的。定义一个指针变量,然后将a的地址赋值给她。int *r; *r=&a; 首先r是个指针变量,但是r指向内存中那个单元格呢?r没有赋初值就开始用了。这是很严重的。r是个游离态的指针。 *r表示取出r对应的那个地址中的值。r都没有指向一个具体的单元格,如何去取值啊。
————————————————
版权声明:本文为CSDN博主「ppaiml」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yuantuo3887/article/details/79672716

  • 点赞
  • 收藏
  • 分享
  • 文章举报
站内首发文章 一勺-_- 发布了8 篇原创文章 · 获赞 4 · 访问量 3253 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: