付翔的专栏
在鄙视中成长 记录成长的点滴
posts - 106,  comments - 32,  trackbacks - 0
# include<stdio.h>

int main()
{
    char *p;
    int a,b,c;
    printf("%d",sizeof a);
    printf("%d\n",sizeof (a));
    printf("%d\n",sizeof *p);
    printf("%d\n",sizeof p);
    printf("%d\n",4 * sizeof *p);

    ///  sizeof  的操作数 是类型名时 必须加上括号 这个让很多人以为sizeof 是个函数 
    a = -1;
    if(a > sizeof(10 * sizeof(int ))) // sizeof 是返回 unsigned int 的 当 int 和 unsigned int 遇上 会升级至 unsigned 
            printf("%ud 这个你也会很郁闷\n",a);    //-1 就变成一个很大的数
    return 0;
}
posted on 2011-03-21 17:38 付翔 阅读(1631) 评论(4)  编辑 收藏 引用 所属分类: linux 及 c相关

FeedBack:
# re: sizeof 我的一个误区
2011-03-21 18:53 | nevergone
sizeof 返回的 size_t
很多平台定义为unsigned int  回复  更多评论
  
# re: sizeof 我的一个误区
2011-03-21 19:16 | 空明流转
numeric promotion.  回复  更多评论
  
# re: sizeof 我的一个误区
2011-03-21 19:22 | 付翔
@nevergone
恩 呵呵 是的   回复  更多评论
  
# re: sizeof 我的一个误区
2011-03-30 21:35 | johnny chan
还有就是sizeof不会对表达式求值,很多模板技巧都是通过这个特性来实现的  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2011年3月>
272812345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(2)

随笔分类

随笔档案

文章分类

文章档案

CSDN - 我的blog地址

博客

搜索

  •  

最新评论

阅读排行榜

评论排行榜