为什么strcpy()
接受char数组指针,即使strcpy
的定义是。{1}}
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);
}
答案 0 :(得分:4)
数组不是指针(尽管它们在行为和用法上类似),但它在需要指针的上下文中透明地衰减为一个数组(就像它作为参数传递给期望的函数的情况一样)指针)。
可以在C FAQ 6.3中找到更深入的描述。
答案 1 :(得分:-1)
char [n]给出一个地址,可用于代替const指针,并在声明时分配内存。
答案 2 :(得分:-4)
在C / C ++中,数组也是指针。 http://www.cplusplus.com/forum/articles/9/有关详细说明,请参阅此处。