社区
C语言
帖子详情
请教指针指向问题?
andywiliang
2008-05-06 08:00:33
int b,c,*p=&b,*a=&c;
如果下面再把*p=a 这样是把指针的地址符赋给指针*p吗?这时*p指向的是*a吗?不是指向b了吗?哪*p指向*a, 而*a又指向c, 哪这样是怎么搞的啦?
...全文
205
16
打赏
收藏
请教指针指向问题?
int b,c,*p=&b,*a=&c; 如果下面再把*p=a 这样是把指针的地址符赋给指针*p吗?这时*p指向的是*a吗?不是指向b了吗?哪*p指向*a, 而*a又指向c, 哪这样是怎么搞的啦?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Peterry
2008-05-08
打赏
举报
回复
[Quote=引用 13 楼 zhangnewhai 的回复:]
int b,c,*p=&b,*a=&c;
如果下面再把*p=a 这样是把指针的地址符赋给指针*p吗?这时*p指向的是*a吗?不是指向b了吗?哪*p指向*a, 而*a又指向c, 哪这样是怎么搞的啦?
首先这个程序是没有问题的
其中*p = a,这里要搞清楚,*p和a分别代表什么内容,能不能赋值,会不会出现问题。
其中p存储的是b的地址,所以*p就是b,是int型的
而a = 存储的是c的地址,我们知道a是int型的指针,也是int的,所以不会产生类型不mat…
[/Quote]
所有指针都是32位int的,但并不意味着可以把int和XXX*互相赋值,你要把*p = a;这个语句写成*p = (int)a;必须要强制转换的,否则编译器还是会报错的.
况且这么转了之后,整型b的值就变成了a的值,也就是c的地址的值,那谁知道是多少啊,这个题目就没有意义了.
Peterry
2008-05-08
打赏
举报
回复
[Quote=引用楼主 andywiliang 的帖子:]
int b,c,*p=&b,*a=&c;
如果下面再把*p=a 这样是把指针的地址符赋给指针*p吗?这时*p指向的是*a吗?不是指向b了吗?哪*p指向*a, 而*a又指向c, 哪这样是怎么搞的啦?
[/Quote]
如果写*p=a,编译器会报错,无法把int* 转换成int,类型根本就不相同,无法互相赋值.
后面的问题都没有意义了.
andywiliang
2008-05-07
打赏
举报
回复
p=a这样就是把a的地址形赋给p吗?
哪么p和a就是一样的啦,哪a指向c,,,,p也指向C吗?
帅得不敢出门
2008-05-07
打赏
举报
回复
error C2440: '=' : cannot convert from 'int *' to 'int'
zhangnewhai
2008-05-07
打赏
举报
回复
int b,c,*p=&b,*a=&c;
如果下面再把*p=a 这样是把指针的地址符赋给指针*p吗?这时*p指向的是*a吗?不是指向b了吗?哪*p指向*a, 而*a又指向c, 哪这样是怎么搞的啦?
首先这个程序是没有问题的
其中*p = a,这里要搞清楚,*p和a分别代表什么内容,能不能赋值,会不会出现问题。
其中p存储的是b的地址,所以*p就是b,是int型的
而a = 存储的是c的地址,我们知道a是int型的指针,也是int的,所以不会产生类型不match的问题。
所以*p = a,其实就是b = &c,也就是将c的地址赋值给b来存储。
tianjingsha
2008-05-06
打赏
举报
回复
楼主,你的表达出错了。*p,p的意思是不同的。
int b,c,*p=&b,*a=&c;
如果下面再把*p=a
//这本身就是错误的,*p是b的值;*p = a 这句话是错误的
//应该是p= a 才对。
这样是把指针的地址符赋给指针*p吗?
//p是指针,*P是指针p所指地址的值。
lunarfan
2008-05-06
打赏
举报
回复
int b,c,*p=&b,*a=&c;
建议楼主不要这么声明变量
=======================
int b, c;
int *p, *a;
arong1234
2008-05-06
打赏
举报
回复
当然不一样,前者是把p指向a指向得内存
后者是把a指向得内存内得内容复制到p指向得内存中去
[Quote=引用 6 楼 andywiliang 的回复:]
哪p=a 和 *p=*a是不是一样的?
[/Quote]
lunarfan
2008-05-06
打赏
举报
回复
晕我也看错了
*p=a 类型不符
lunarfan
2008-05-06
打赏
举报
回复
这样是把指针的地址符赋给指针*p吗?这时*p指向的是*a吗?不是指向b了吗?哪*p指向*a, 而*a又指向c, 哪这样是怎么搞的啦? 我看晕了
=====================================================================
int b,c,*p=&b,*a=&c;
*p = &b //p指向b
*a=&c //a指向c
如果下面再把*p=a //就是b = a也就是a,b相等。
andywiliang
2008-05-06
打赏
举报
回复
哪p=a 和 *p=*a是不是一样的?
太乙
2008-05-06
打赏
举报
回复
晕,*p=a是不对的。编译是通不过的。
这么说吧:
b = 2 &b = 0x0012BB
c = 3 &c = 0x0012CC
*p = &b p = 0x00PPPP 在0x00PPPP上,存放的是b的地址,即0x0012BB,而p本身根本就是一个内存地址,这个内存地址就是0x00PPPP,所以通过*p ,可以拿到0x00PPPP上的值,即0x0012BB,而0x0012BB上就存放的是b的值2,所以能拿到2.
你这么想,什么东西都放在内存上,内存上都是数,不管是p还是b,
如果你用*p=4,会发生什么呢?
很容易,因为p是0x00PPPP,那么这个4,显然不能写到这个地址上,所以,4写到了0x00PPPP所存的内存地址上,也就是0x0012BB,所以b的值会相应改为4;
如果用*p=*a,那么,很简单,*a是什么,是a上存放的地址的值,即(假如)5。那么,也就等同于*p=5;和上面一样了。
这指针,不要看它指向谁,最好是透过现象看本质。看他的实际内存地址,用vc调试一下就很清楚了!
chlaws
2008-05-06
打赏
举报
回复
靠,没看清,sorry
要是在int b,c,*p=&b,*a=&c;后面再加这句*p=a;
那么这就是错误的.除非p是二级指针
andywiliang
2008-05-06
打赏
举报
回复
楼上看清楚啦,是*p=a不是*p=*a
chlaws
2008-05-06
打赏
举报
回复
int b,c,*p=&b,*a=&c;
如果下面再把*p=a 这样是把指针的地址符赋给指针*p吗?//这应该说是指向了a,说赋值也行吧
这时*p指向的是*a吗?//是的
不是指向b了吗? //不指向b了
哪*p指向*a, 而*a又指向c, 哪这样是怎么搞的啦?
//这开始的时候让p指向b,然后通过p=a改变了p的指向,使p和a指向相同的地址,又因为a是指向c的,所以p就指向c,也就是*p == c;
clhposs
2008-05-06
打赏
举报
回复
int b,c,*p=&b,*a=&c;
*p=a; //*p是取他所指向的变量
C++课程设计-单链表——学生信息管理系统.docx
} //遍历链表查找符合要求的节点 五、删除:利用节点的删除操作,找到链表中第i-1个结点,修改其
指向
后继的
指针
: q = p->next; p->next = q->next; delete(q); 六、更改:利用查找的操作,查到后在进行重新输入的...
请教
js
指向
问题
?
变量a保存的对象地址并不是对象在内存中的实际地址资源下载,有点绕,类似于这样a→引用地址(类似于
指针
,
指向
实际存储地址)→实际存储地址 2.当b赋值给a的时候a只会把对应的引用地址赋值给b:b=a a=引用地址 ...
C语言两个
指针
指向
同一个,如何避免两个
指向
同一个地址的多次释放有关
问题
...
怎么避免两个
指向
同一个地址的多次释放
问题
本帖最后由 wallwind 于 2014-03-05 20:44:48 编辑比如以下代码#include#includeintmain(){int*ptr=malloc(10*sizeof(int));int*ptr2=ptr;if(ptr){free(ptr);ptr=NULL;...
C语言
指针
干货——你真的学懂
指针
了吗?(一)
真正的大师永远永远怀揣着一颗学徒的心。近来琐事颇多,有些心猿意马,一些...如有错误,欢迎批评指正,我将虚心
请教
。本次博客所以源码在文末。本期内容:
指针
是什么?
指针
的大小
指针
和
指针
类型。
指针
运算下期更新。
c语言中返回
指向
临时变量的
指针
的探讨
今天在CSDN的一个Blog上看到了一篇讲C/C++中常见内存错误的文章,里面讲到...不能把
指向
这些临时变量的
指针
返回给调用者,这样的
指针
指向
的数据是随机的,会给程序造成不可预料的后果。下面是个错误的例子:char* get_
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章