0

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

}
4

3 回答 3

4

数组不是指针(尽管它们在行为和用法上相似),但它在需要指针的上下文中透明地衰减为一个(例如在它作为参数传递给需要指针的函数的情况下) .

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

于 2011-07-30T08:11:08.870 回答
-1

char[n] 给出了一个地址,该地址可以用来代替在声明时分配内存的 const 指针。

于 2011-07-30T07:44:56.280 回答
-4

在 C/C++ 中,数组也是指针。 http://www.cplusplus.com/forum/articles/9/更多解释见这里。

于 2011-07-30T07:45:25.967 回答