| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1835 人关注过本帖
标题:请教个指针的问题
只看楼主 加入收藏
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
结帖率:66.67%
收藏
 问题点数:0 回复次数:20 
请教个指针的问题
```指针本身的类型``和```指针指向的类型```不同的地方在那里```他们的区别是什么啊``??


还有``指针本身占的内存``又是怎么算的``比如int*和char*``占的内存是一样的吗``
搜索更多相关主题的帖子: 指针 
2007-11-26 12:54
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
我觉得好像区别不大。
就像定义了一个指针类型,然后用这个指针给一个变量赋值。
好像没什么区别似的,这只是我的看法。
关注中~~~~~~

~~我的明天我知道~~
2007-11-26 12:58
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
我还有一个很奇怪的问题`````

int a;  假设给a分配的是2个内存单元``  那么&a后```这个地址是什么样的呢``是第一个内存单元的地址还是第2个内存单元的地址呢````还是把2个内存单元的地址一起取了呢```

[[italic] 本帖最后由 死了都要C 于 2007-11-26 13:03 编辑 [/italic]]

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-11-26 13:02
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
我是这样理解的。
比如吧 int a=2
它的二进制为0010
10为低字节,00为高字节。
它们在内存中的存储形式为10在上面,00在下面。

但是,并不是说,10的地址就是a 的地址。
系统在给a分配内存空间的时候是随机分配的,它的地址和10,00的地址并没有关系。

~~我的明天我知道~~
2007-11-26 13:23
wubizao
Rank: 1
来 自:荆州长大电信
等 级:新手上路
帖 子:223
专家分:0
注 册:2006-6-24
收藏
得分:0 
|                   |                           假设int a;已经定义好了(设整形为16位),设a=10
|                   |                           那么占两个字节.
|     0ah       |  <-----------        一般系统都是小地址方式存取,即低在上,高在下(逻辑)               
|     00h       |                           其实只需要箭头指向的位置就行了,如果你把a当int,那么
|                   |                            操作的时候就把000ah一起取出,如果当成char型,则取
|________|                            0ah用
不好意思,新手随便发表下想法
错了勿怪,望指点

在路上走,看见了C,从此爱上了她
2007-11-26 13:36
beyond0702
Rank: 1
来 自: 桂 林
等 级:新手上路
帖 子:219
专家分:0
注 册:2007-11-17
收藏
得分:0 
指针 本身就是一种数据类型,和int ,char一样.它所指向的类型意思是 它所指向的地址里的数据的类型.比如 char *p a[ ]  这里变量 p  是指针类型,它所指向的数组 a[] 的类型是 char  ,也就是 a[ ] 里面只能存放char 的东西,而不能放其他<如int >类型的东西.
2007-11-26 13:37
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
我觉得最好还是能验证一下,因为我觉得自己的想法没错,好像老师也这样讲的。

~~我的明天我知道~~
2007-11-26 13:38
独行之
Rank: 2
等 级:论坛游民
帖 子:60
专家分:30
注 册:2007-6-19
收藏
得分:0 
关注中。。。
2007-11-26 14:01
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
得分:0 
"指针本身的类型"`和"指针指向的类型"有区别,指针也是一个变量,它自身也有自己的数据类型。比如int *a,指针a的类型是int *,它指向的数据类型是int

指针本身占的内存即是指针变量的地址,指针在32位机器下所占内存的大小均为4个字节
例如sizeof(int *)=sizeof(char *)=4

英者自知,雄者自胜
2007-11-26 14:36
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
指针的类型属于指针类型,
sizeof(void *)   // 指针的大小
32 位计算机最快可读取的数据是 32位数据。可以同时读取内存中的4个单元。

如果int a; 为 2 字节,那么就是 16 位(用的TC 吧),那么&a得到是16位数据的地址。

—>〉Sun〈<—
2007-11-26 14:49
快速回复:请教个指针的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018027 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved