为什么strcpy()
即使定义strcpy
是
char 也接受 char 数组指针char * strcpy( char * , const char * )
?
#include <stdio.h>
#include <string.h>
main()
{
char str[] = "Have A Nice Day";
char ptr[17];
strcpy(ptr, str);
printf("%s", ptr);
}
数组不是指针(尽管它们在行为和用法上相似),但它在需要指针的上下文中透明地衰减为一个(例如在它作为参数传递给需要指针的函数的情况下) .
更深入的描述可以在C FAQ 6.3中找到。
char[n] 给出了一个地址,该地址可以用来代替在声明时分配内存的 const 指针。
在 C/C++ 中,数组也是指针。 http://www.cplusplus.com/forum/articles/9/更多解释见这里。