strcpy()接受的参数类型?

时间:2011-07-30 07:42:14

标签: c string strcpy

为什么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);

}

3 个答案:

答案 0 :(得分:4)

数组不是指针(尽管它们在行为和用法上类似),但它在需要指针的上下文中透明地衰减为一个数组(就像它作为参数传递给期望的函数的情况一样)指针)。

可以在C FAQ 6.3中找到更深入的描述。

答案 1 :(得分:-1)

char [n]给出一个地址,可用于代替const指针,并在声明时分配内存。

答案 2 :(得分:-4)

在C / C ++中,数组也是指针。 http://www.cplusplus.com/forum/articles/9/有关详细说明,请参阅此处。