指针与引用,宏与预处理,define与tpyedef
2016-07-14 21:08
363 查看
宏与预处理
1)宏定义是在预处理阶段进行代码替换,而内联函数是在编译阶段插入代码;2)宏定义没有类型检查,而内联函数有类型检查
#define与typedef
typedef声明一个类型的别名,在编译时处理,有类型检查,后者是一个简单的替换,在预编译是处理,无类型检查typedef char* String_t; #define String_d char*; String_t a, b; String_d c, d;
上述代码中,a,b均为char*类型,但是c,d中只有c为char*类型,d为char类型
指针和引用区别
1)引用不能为空,当引用被创建时,它必须被初始化,而指针可以在为空,并且可以在任何时候被初始化,也即引用不可以改变为对另一个对象的引用,但指针可以在任何时候改变为指向另一个对象;2)sizeof(引用)得到的是所指向的变量(对象)的大小,而sizeof(指针)得到的是指针本身的大小;
3)给引用赋值修改的是该引用所关联的对象的值,而并不是使引用与另一个对象关联;
4)引用使用时不需要解引用,而指针需要解引用,并且引用和指针的自增(++)自减(–)运算意义不一样;
5)如果返回动态分配的对象或内存时,必须使用指针,引用可能引起内存泄漏;
6)当使用&运算符取一个引用的地址时,其值为所引用变量的地址;而对指针使用&运算,取的是指针变量的地址。
相关文章推荐
- Python动态类型的学习---引用的理解
- 如何组织构建多文件 C 语言程序(二)
- 关于指针的一些事情
- 如何写好 C main 函数
- Lua和C语言的交互详解
- Shell脚本中引用、调用另一个脚本文件的2种方法
- vbs引用另一个vbs的代码
- C# Pointer指针应用实例简述
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C和指针小结(推荐)
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C++中引用的使用总结
- C语言自动生成enum值和名字映射代码
- C语言练习题:自由落体的小球简单实例
- 使用C语言判断英文字符大小写的方法