您的位置:首页 > 编程语言 > PHP开发

指针与引用,宏与预处理,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)当使用&运算符取一个引用的地址时,其值为所引用变量的地址;而对指针使用&运算,取的是指针变量的地址。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 指针 引用