可能重复:
what is the difference between “int i” and “int i”?
what is the difference between const int*, const int * const, int const *
之间有什么区别
char* getInput();
和
char *getInput();
答案 0 :(得分:9)
就C编译器而言,没有区别。
答案 1 :(得分:8)
没有区别。
int* a;
int *b;
int * c;
a,b或c之间也没有区别。他们都是指针。只是你可以根据自己的喜好放置多个空格。
然而,这些之间存在差异:
int* a, a1, a2;
int *b, b1, b2;
int *c, *c1, *c2;
只在C行上你宣布了3个指针指向。 A和B都有一个指向int和两个int的指针。
答案 2 :(得分:3)
没有区别。请注意,以下所有声明都是相同的:
char*getInput();
char* getInput();
char *getInput();
char * getInput();
char* getInput ();
char *getInput ();
char * getInput ();
char* getInput ( );
char *getInput ( );
char * getInput ( );
char* getInput ( ) ;
char *getInput ( ) ;
char * getInput ( ) ;
所有这些都让编译器知道有一个名为getInput
的函数返回char *
并传递一个特定但未指定的特定但未指定类型的参数。
修改的
源文件中的空格字符大多被忽略并且是多余的。
for (n = 0; n < 1000; n++) { /* ... */ }
for(n=0;n<1000;n++){/*...*/}
它只对内部字符串很重要,何时需要分隔不能通过其他方式分隔的标记。
return 9; /* statement that returns from a function */
return9; /* statement that evaluates a variable */
答案 3 :(得分:2)
空间的位置。
答案 4 :(得分:2)
对于编译器,没有区别。
在我的大脑中,首选表单是首选,因为它表明函数更清楚地返回指向char(而不是char)的指针。当然,这严格来说是恕我直言。
答案 5 :(得分:1)
没有来自语义和句法观点。
答案 6 :(得分:1)
在意义上没有任何区别。事实上,即使在语法方面也没有。只要空白某处,就没有问题。两者都编译成完全相同的代码。
通常使用的是偏好问题。传统的C编码器通常更喜欢第二种,因为它更能说明类型仍然是char
,而不管它是指针。我相信Bjarne Stroustrup自己指出,许多C ++程序员更喜欢char*
语法,因为它在OOP风格中被认为更多。我个人也喜欢这个,因为它表示该变量是 char指针。
编辑:无法找到他实际编写的内容,但您可以在他的BC++ Style and Technique FAQ指南中清楚地看到他更喜欢char*
样式语法。
答案 7 :(得分:0)
你的意思是char(* getInput)(); 如果没有括号,您将拥有一个返回指向char的指针的函数。使用括号getInput是一个返回char的函数的指针。
答案 8 :(得分:-1)
我知道我正在回答所有人说过的话......只是想补充一些东西:
你可能想问的可能是: char * getInput(); char(* getInput)();
这里第一个表示:getInput是一个返回指向char的指针的函数。 第二个是:getInput是一个指向返回char的函数的指针。
如果复杂的声明总是记得!!!从支架内部开始阅读
考虑一下:char *(* getInput)(); 这里,getInput是一个指向函数的指针,该函数返回一个指向char的指针。