| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 510 人关注过本帖
标题:请大虾,帮忙解释一下指针
只看楼主 加入收藏
sun934191037
Rank: 1
等 级:新手上路
帖 子:12
专家分:2
注 册:2013-3-27
结帖率:66.67%
收藏
 问题点数:0 回复次数:7 
请大虾,帮忙解释一下指针
#include<stdio.h>
void main()
{
    float *p;
    printf("%d\n",sizeof(p));
}
运行结果是4,sizeof(void *)也是4,请哪位大神帮忙解释一下
2013-03-30 17:34
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
32位环境的指针总是4字节,4字节就是32位二进制。

授人以渔,不授人以鱼。
2013-03-30 17:37
yctchxf
Rank: 6Rank: 6
来 自:盐城
等 级:侠之大者
威 望:2
帖 子:176
专家分:454
注 册:2012-4-10
收藏
得分:0 
sizeof()是用来求变量的字节书的啊,你这个程序应该求得是 float 类型指针所占的字节数。viod * 指的应该是空指针。他的大小也是4字节啊。#include<stdio.h>
void main()
{

  double *p;
  printf("%d\n",sizeof(void *));

printf("%d\n",sizeof(int *));

}
不能说 void 不是数据类型哦 只是它是空类型。就像你在定义函数的时候,返回值可以是int double void 也是可以的啊。
2013-03-30 17:46
sun934191037
Rank: 1
等 级:新手上路
帖 子:12
专家分:2
注 册:2013-3-27
收藏
得分:0 
回复 2楼 TonyDeng
在32位系统中,指针都是4个字节,不管是什么类型,对吧?
2013-03-30 21:13
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
以下是引用sun934191037在2013-3-30 21:13:37的发言:

在32位系统中,指针都是4个字节,不管是什么类型,对吧?


我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-03-30 21:19
奔跑的萝卜
Rank: 2
等 级:论坛游民
帖 子:43
专家分:55
注 册:2013-3-18
收藏
得分:0 
一个字节是8位0或1的数据,32位就是4个字节的0和1的数据,也就是说2的32次方个数据,如果是64系统,那么就是2的64次方个数据!
你定义变量或指针变量后,无论它是不是空的,它先把窝占好了。


[ 本帖最后由 奔跑的萝卜 于 2013-3-30 21:33 编辑 ]
2013-03-30 21:31
sun934191037
Rank: 1
等 级:新手上路
帖 子:12
专家分:2
注 册:2013-3-27
收藏
得分:0 
回复 5楼 peach5460
谢谢
2013-04-02 17:06
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
32位系统,指针分配四个存储空间

Maybe
2013-04-02 17:50
快速回复:请大虾,帮忙解释一下指针
数据加载中...
 
   



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

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