日志17
关于typedef和#define的学习
typedef相当于给一个类型起一个别名,可能会改变类型的一些性质;
#define则相当于直接将一个或一段字符替换为一个新的样子,而不改变其性质;
#include<iostream> using namespace std; #define BB int* typedef int* AA; int main() { int* o,p,q; AA a,b,c; BB l,m,n; }
如果用第一种形式定义变量,那么只有o是int*类型,p和q是int类型,需要在每一个变量前面都加上一个*才能都定义为int*类型;
但是用typedef将int*取了一个AA的别名后,就可以直接用AA定义,不用加*;
如果通过#define将int*替换为BB后,其只是相当于输入了int*,与直接输入int*的效果一样,所以也需要加*;