我定义了一个typedef
typedef char* charP;
然后我宣布了一些变量
charP dog, cat, fish;
类型char*
或dog
的所有变量是唯一的char*
,而cat
和fish
的类型是char
吗?< / p>
答案 0 :(得分:10)
所有这些都是charP
类型,这是char *
的别名,所以是的,它们都是指针。
也就是说,有些人(包括我在内)认为隐藏&#34;是一个坏主意。指针星号,因为它打破了声明变量和访问变量之间的对称性。
你将会:
charP a;
*a = '1'; /* What?! It didn't look like a pointer, above?! */
......这引起了混乱。通常,C中的指针对于跟踪是很重要的,因此隐藏什么是指针以及什么不会导致麻烦。
答案 1 :(得分:1)
所有这些都是char *
。不要将它与此案混淆:char *dog, cat, fish;
。在这里,dog
是char *
,其余只是char
s。
答案 2 :(得分:0)
所有这些都是char指针,因为你使用的是typedef而不是宏。
所以它不会像char * dog,cat,fish;