在函数中声明指针语法

时间:2012-01-18 19:42:13

标签: c

两个指针语句是否相同?

void reverse(const char * const sPtr){


}

void reverse(const char const *sPtr){


}

3 个答案:

答案 0 :(得分:5)

没有

const char const *sPtr相当于 const char *sPtr

const char *sPtr说参数sPtr是指向const char的指针。

const char * const sPtr是指向const的{​​{1}}指针。

请注意,这在C99和C11中是等效的:

  

(C99,6.7.3p4)“如果相同的限定符在同一说明符限定符列表中出现多次,无论是直接还是通过一个或多个typedef,行为都与它只出现一次相同。”

但不是在C89中const char是违反约束的行为:

  

(C90,6.5.3)“相同的类型限定符不应在同一说明符列表或限定符列表中直接或通过一个或多个typedef出现多次。”

答案 1 :(得分:2)

你想要达到什么目标?

如果你想要一个const指针,你必须将const放在*

之后
int * const a;

如果你想要指向const的指针,你必须将const放在*

之前
const int *a; 

答案 2 :(得分:1)

没有

第一个是指向const的{​​{1}}指针。

第二个是指向const char的指针。

const char绑定到左边,或者右边是左边没有任何内容。