免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3312 | 回复: 19
打印 上一主题 下一主题

如何把一个地址敷值给一个地址变量? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-31 20:56 |只看该作者 |倒序浏览
定义一个void * a;
想把 地址c060e4e0敷给它
怎么弄?

论坛徽章:
0
2 [报告]
发表于 2009-03-31 21:19 |只看该作者
原帖由 eclipse_2 于 2009-3-31 20:56 发表
定义一个void * a;
想把 地址c060e4e0敷给它
怎么弄?

a = (void *)0xc060e4e0;
不知道这样做有没有问题?

论坛徽章:
0
3 [报告]
发表于 2009-03-31 21:25 |只看该作者
更正一下
把一个地址赋值给 void *a[];
咋个整哦?

论坛徽章:
5
4 [报告]
发表于 2009-04-01 09:26 |只看该作者
原帖由 eclipse_2 于 2009/3/31 21:25 发表
更正一下
把一个地址赋值给 void *a[];
咋个整哦?


如果是void *a[];
下面的赋值没问题
a = (void *)0xc060e4e0;

论坛徽章:
1
寅虎
日期:2014-11-30 21:25:54
5 [报告]
发表于 2009-04-01 10:22 |只看该作者

回复 #5 yidou 的帖子

应该是有问题的 void *a[] 说明 a是一个void *的数组的首地址 所以a不能被赋值
a[0] = (void *)0xc060e4e0; // 这样应该刘可以的
上面是我的理解  不对的地方请大家指正

论坛徽章:
0
6 [报告]
发表于 2009-04-01 10:38 |只看该作者
原帖由 yidou 于 2009-4-1 09:26 发表


如果是void *a[];
下面的赋值没问题
a = (void *)0xc060e4e0;

我觉得这样还是有问题的
a是一个数组的指针
虽然也是个地址 但是不能这样直接给它地址吧
个人想法 请指教

论坛徽章:
1
寅虎
日期:2014-11-30 21:25:54
7 [报告]
发表于 2009-04-01 10:57 |只看该作者

回复 #7 eclipse_2 的帖子

你还是没有理解, a 不是指针,就是个地址
数组名和函数名都是常量,不能被赋值,但可以用来赋值

论坛徽章:
0
8 [报告]
发表于 2009-04-01 11:00 |只看该作者
原帖由 vbs100 于 2009-4-1 10:57 发表
你还是没有理解, a 不是指针,就是个地址
数组名和函数名都是常量,不能被赋值,但可以用来赋值


你的意思是这样定义的a是不能被赋值了 ?

论坛徽章:
0
9 [报告]
发表于 2009-04-01 11:07 |只看该作者
不管是"void *a;",还是"void *a[];",或者是"void **a;",甚至是"void *****a;"……
它们的本质都是一个字长大小的内存空间。
0xc060e4e0是个立即数,能够被一个字长大小的内存空间所容纳,当然可以赋值。

不管a是以上哪一种定义,赋值之后,a所指代的这块一个字长大小的内存空间里面所保存的值就是0xc060e4e0。
至于a的类型,只表示你或者编译器如何来解释0xc060e4e0。把它当作一个立即数?当作一个内存地址,指向另一个内存空间?
如果是指向内存空间,它所指向的内存空间所保存的内容被当作立即数?还是当作一个内存地址,指向另一个内存空间?
如果是指向内存空间,它所指向的内存空间所保存的内容被当作立即数?还是当作一个内存地址,指向另一个内存空间?
……

论坛徽章:
1
寅虎
日期:2014-11-30 21:25:54
10 [报告]
发表于 2009-04-01 11:13 |只看该作者
还有一点要说明的
void *a[];这个在函数几个内部是不能用的,要指定个数组长度 除非是在函数的形参里出现
比如 int foo(void *a[]); 但这里 a 已经退化为 void **a 这时 a 是可以被赋值
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP