免费注册 查看新帖 |

Chinaunix

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

[C] C语言中有没有sizeof()==1的指针? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-11-17 09:06 |只看该作者 |倒序浏览
记得以前看Linux源代码分析,讲说void*和函数指针都是sizeof()==1的,其余的为4 。(IA32平台)可是刚刚写了小程序输出一下,都是4.

记不清楚了,就来问问朋友们吧

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2004-11-17 09:15 |只看该作者

C语言中有没有sizeof()==1的指针?

没看过说是1的。
应该不是,指针里面装的是地址,地址就是一个ulong型的,就是4个字节的。那么指针当然就应该是4个字节的了。

论坛徽章:
0
3 [报告]
发表于 2004-11-17 09:36 |只看该作者

C语言中有没有sizeof()==1的指针?

想想看指针的实质是什么?用来寻址定位数据的,32位cpu中地址是32位的,所以指针必然是32位的。

论坛徽章:
0
4 [报告]
发表于 2004-11-17 09:38 |只看该作者

C语言中有没有sizeof()==1的指针?

这个道理偶懂得的,可印象里真的好象看过说有1字节的,莫非是记错了??

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2004-11-17 09:43 |只看该作者

C语言中有没有sizeof()==1的指针?

^_^,也许是书写错了。
谭老师的书,推敲过好多年了。还是有错误。

最明显的就是误导淫说hanoi问题只能用递归解决。:-(

论坛徽章:
0
6 [报告]
发表于 2004-11-17 09:46 |只看该作者

C语言中有没有sizeof()==1的指针?

^_^,这样写的通常会出现在注释里,是不是你记得是注释里的?

论坛徽章:
0
7 [报告]
发表于 2004-11-17 12:28 |只看该作者

C语言中有没有sizeof()==1的指针?

原帖由 "aero" 发表:
^_^,也许是书写错了。
谭老师的书,推敲过好多年了。还是有错误。

最明显的就是误导淫说hanoi问题只能用递归解决。:-(

我觉得谭的书是给那些还没有学过数据结构的初学者看的,初学的人根本不知道什么是栈,从这点上不应该说谭错了。
而且递归和非递归本质上是一样的。

论坛徽章:
0
8 [报告]
发表于 2004-11-17 12:32 |只看该作者

C语言中有没有sizeof()==1的指针?


  1. char p[1]; printf("%d\n",sizeof(p));
复制代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
9 [报告]
发表于 2004-11-17 12:37 |只看该作者

C语言中有没有sizeof()==1的指针?

原帖由 "yangtou" 发表:

我觉得谭的书是给那些还没有学过数据结构的初学者看的,初学的人根本不知道什么是栈,从这点上不应该说谭错了。
而且递归和非递归本质上是一样的。


848,这也要维护“权威”,看看讲递归时候的那个hanoi例题,里面的话说的老绝对了。说什么罕见的只能用递归不能用非递归方法解决的古老的数学问题。俺觉得就是错了。错就是错了,对就是对了。还有啥应该8应该D?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
10 [报告]
发表于 2004-11-17 12:44 |只看该作者

C语言中有没有sizeof()==1的指针?

[quote]原帖由 "JohnBull"][/quote 发表:


用这个就是4了。

printf("%d\n", sizeof((void *)p));
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP