define:

  发生在预处理阶段,也就是编译之前,仅仅文本替换,不做任何的类型检查

  没有作用域的限制

typedef:

  多用于简化复杂的类型声明,比如函数指针声明:typedef bool (*funcPoiinter) (int, double);

  给已有类型定义一个别名(类似的 引用是给已有对象或者变量一个别名)

  在编译阶段有效,具有类型检查的功能

  定义域平台无关的数据类型。比如:size_t

  有自己的作用域(函数内定义只能函数内部使用)

  对指针的修饰作用不同:

  

typedef int * pint;
#define PINT int *
int i1 = , i2 = ;
const PINT p1 = &i1;//p可以更改,p指向的内容不可以更改,相当于const int *p 或 int const *p;
const pint p2 = &i2;//p不可以更改, p指向的内容可以更改,相当于int *const p;
pint s1, s2;
PINT s3, s4; void testPointer()
{
cout<<"p1:"<<p1<<" *p1:"<<*p1<<endl;
p1 = &i2;
//*p1 = 3; 报错
cout<<"p1:"<<p1<<" *p1:"<<*p1<<endl;
//p2 = &i1; 报错
*p2 = ;
cout<<"p2:"<<p2<<" *p2:"<<*p2<<endl;
}

  ps:关于Const的修饰原则:从左至右,依次结合,const就近结合。在另一篇博文中。

最新文章

  1. Django分析之国际化处理
  2. 通过Spring Mail Api发送邮件
  3. C语言 稀疏矩阵 压缩 实现
  4. HTTP协议状态码
  5. 转载:为什么要对URI进行编码
  6. sql server split函数
  7. .net winForm 实现类似qq 弹出新闻
  8. Bootstrap3.0学习第八轮
  9. OMCS开发手册(04) -- 二次开发流程
  10. android点滴之HandlerThread的用法
  11. 【java设计模式】【行为模式Behavioral Pattern】策略模式Strategy Pattern
  12. jsp页面传中文到后台乱码怎么办?
  13. VMware中某个虚拟机卡死,单独关闭某个虚拟机的办法
  14. 【友情链接】各位dalao的博客
  15. 点击一个div ,把div里的某个参数的值,传到一个input里面
  16. 反恐24小时第一季/全集24 Live Another Day迅雷下载
  17. Android手势密码实现
  18. C# 高级编程9 第30章MEF C#可扩展编程之MEF第2章(抄录)
  19. String、StringBuffer、StringBuilder有什么区别
  20. PAT 甲级 1132 Cut Integer

热门文章

  1. circumferential averge streamwise velocity using Tecplot and Matlab
  2. maven profile多环境自动切换配置,配置分离,排除文件
  3. 实验吧-catalyst-system
  4. noip模拟赛 圆桌游戏
  5. vue组件知识总结
  6. 杨辉三角的打印(Java)
  7. Ubuntu下的软件一般安装在哪个文件夹里
  8. NETCore项目报错 An error occurred while starting the application
  9. Gradle学习之创建Task的方法
  10. UNIX网络编程——网络I/O模型