当指针之间发生赋值或者传参,必须满足两个条件:
两个操作数都是指向有限定符或无限定符的相容类型的指针;
左边指针所指向的类型必须具有右边指针所指向类型的全部限定符。
因此,常常可以在库函数从看到形参类型是 const *,而可以接受的实参类型既可以是 const *,也可以是指针变量。例如 strlen 函数是这样声明的:
size_t strlen(const char *str)
因为参数str是“指向常量的指针”,具有const限定符,所以传参(类似赋值)的过程可以接受像"hello"这样的字面值,也可以接受像char *buf = (char *)malloc(n) 这样的变量参数。
889

被折叠的 条评论
为什么被折叠?



