免费注册 查看新帖 |

Chinaunix

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

新手,问个指针的简单问题,好心人回答一下 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-07 14:21 |只看该作者 |倒序浏览
1、指针指向的是内存区域的首地址,那么这个区域的大小怎么定义呢?或者说指针怎么取这区域的数据作为值呢?

2、指针类型有什么意义,反正指向的是原始数据,为什么要定义类型。

3、指针本身占据了4个字节的长度,这4字节是存放地址的吗,如果是,4字节怎么够存放32位的地址呢?是否可以认为指针也是一种索引?

[ 本帖最后由 玛莉隔壁 于 2009-2-7 14:22 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-02-07 14:25 |只看该作者
你应该先看汇编再学C了。有些问题现在没法和你解释清楚。

论坛徽章:
0
3 [报告]
发表于 2009-02-07 14:28 |只看该作者
原帖由 langue 于 2009-2-7 14:25 发表
你应该先看汇编再学C了。有些问题现在没法和你解释清楚。


版主能帮则帮嘛,我要会去看,就不会来提问了嘛

论坛徽章:
0
4 [报告]
发表于 2009-02-07 14:30 |只看该作者
我想 指针指向了 首地址,那么取值时是否从首地址开始到 '/0'为止?

4个字节我想了一下没错,正好是4*8=32bit,是我搞错了

论坛徽章:
0
5 [报告]
发表于 2009-02-07 14:33 |只看该作者
对 CPU 来讲,指针变量就是一种间接寻址的方式。CPU 的运作模式决定了指针的长度。比如,80386 保护模式下,flat 内存布局,此时只有一个段,只能用 near jump,指针的长度是 32 位。

寻址。指针只用来寻址,并无法让计算机告诉你这个指针对应的存储区域有多大,再大的存储区域都是你自己请求再得到的。

论坛徽章:
0
6 [报告]
发表于 2009-02-07 14:42 |只看该作者
TObject * p;
1、 sizeof (*p ) = sizeof(TObject)
2、 do_something(TObject)
3、 p == offset

论坛徽章:
0
7 [报告]
发表于 2009-02-07 14:59 |只看该作者
是否可以理解成,对 CPU 来讲普通变量只是一个“常量”,而指针才是一个变量?

那么C是否有个“容器”以存放这些变量、指针,以及说明他们的类型、区域?

论坛徽章:
0
8 [报告]
发表于 2009-02-07 15:02 |只看该作者
原帖由 玛莉隔壁 于 2009-2-7 14:59 发表
是否可以理解成,对 CPU 来讲普通变量只是一个“常量”,而指针才是一个变量?

那么C是否有个“容器”以存放这些变量、指针,以及说明他们的类型、区域?


你不能拿 C 语言里的知识来理解 CPU。倒是可以利用汇编知识来更好地掌握 C 语言。
真的劝你先学一学 80386 保护模式下的汇编。

论坛徽章:
0
9 [报告]
发表于 2009-02-07 15:04 |只看该作者
原帖由 mik 于 2009-2-7 14:42 发表
TObject * p;
1、 sizeof (*p ) = sizeof(TObject)
2、 do_something(TObject)
3、 p == offset



这个...我尚不能理解

论坛徽章:
0
10 [报告]
发表于 2009-02-07 15:10 |只看该作者
原帖由 langue 于 2009-2-7 15:02 发表


你不能拿 C 语言里的知识来理解 CPU。倒是可以利用汇编知识来更好地掌握 C 语言。
真的劝你先学一学 80386 保护模式下的汇编。



我说姐姐,我只是个linux SA,有些问题不清楚,SA版主叫我先去弄清楚内核,在看内核时,总得涉及C语言实现,版主又叫我先把C弄懂了,我在弄C了,又有人叫我看汇编,看了汇编是不是又有人让我去了解一下电子基础呢?

诚然我有一颗打破沙锅问到底的心,但这么折腾似乎我基础有问题啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP