typedef不是定义变量,而是声明新类型名。a是指针变量的类型名和(char *)是等价的。你用了typedef char *a;之后,如果要定义char *p;就可以写成a p;所a和int,char一样都是类型名,而不是变量,当然没有属性。
a是char *类型(字符指针类型)。