strcpy() 接受的参数类型?

发布于 2024-11-27 08:15:03 字数 319 浏览 3 评论 0原文

为什么 strcpy() 接受 char 数组指针,即使 strcpy 的定义是 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);

}

Why is that strcpy() accepting char array pointer even though the definition of strcpy is
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);

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

意中人 2024-12-04 08:15:03

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

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

An array is not a pointer (although they are similar in behavior and usage), but it transparently decays to one in a context where a pointer is needed (like in the case where it's passed as a parameter to a function that expects a pointer).

A more in-depth description can be found in the C FAQ 6.3.

森罗 2024-12-04 08:15:03

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

An char[n] gives an address which can be used in place of a const pointer with memory allocated at time of declaration.

灼疼热情 2024-12-04 08:15:03

在 C/C++ 中,数组也是指针。
http://www.cplusplus.com/forum/articles/9/ 请参阅此处以获得更多解释。

In C/C++ arrays are pointers as well.
http://www.cplusplus.com/forum/articles/9/ See here for more explanation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文