使用指针变量typedef

use*_*169 2 c pointers typedef

我定义了一个typedef

typedef char* charP;
Run Code Online (Sandbox Code Playgroud)

然后我宣布了一些变量

charP dog, cat, fish;
Run Code Online (Sandbox Code Playgroud)

是类型的所有变量char*或者是dog唯一的char*,而catfish有型的char

unw*_*ind 10

所有这些都是类型charP,这是别名char *,所以是的,它们都是指针.

也就是说,有些人(包括我在内)认为"隐藏"指针星号是一个坏主意,因为它打破了声明变量和访问变量之间的对称性.

你将会:

charP a;

*a = '1';  /* What?! It didn't look like a pointer, above?! */
Run Code Online (Sandbox Code Playgroud)

...导致混乱.通常,C中的指针对于跟踪是很重要的,因此隐藏什么是指针以及什么不能导致麻烦.