Chinaunix首页 | 论坛 | 博客
  • 博客访问: 652370
  • 博文数量: 99
  • 博客积分: 4335
  • 博客等级: 中校
  • 技术积分: 931
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-26 14:11
文章分类

全部博文(99)

文章存档

2012年(14)

2011年(17)

2010年(14)

2009年(54)

分类: C/C++

2009-07-29 12:51:18

老师刚刚讲过的一个问题,记录下来,分享一下。
下面一段程序的执行结果是:

#include <stdio.h>
#define CHAR2 char*
int main()
{
    typedef char* CHAR;
    CHAR a,b;
    CHAR2 c,d;
    printf("%d,%d,%d,%d\n",sizeof a,sizeof b,sizeof c,sizeof d);
    return 0;
}   

答案是:4,4,4,1

因为用define定义的别名只是简单的替换,如果是像上面那样的字符指针类型,用来声明变量,就相当于

char* c;

char d;

从颜色上也可以看出来,用typedef声明的新类型CHAR已经变为蓝色。

阅读(1404) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

jimylion2009-08-01 08:15:26

呵呵,老师讲过了,是我没写清楚,上面最后一句话:“从颜色上也可以看出来,用typedef声明的新类型CHAR已经变为蓝色。”

fera2009-07-31 22:02:19

你们老师没有讲的是,typedef定义的是一个新类型