0

の定義がis strcpy()であるにもかかわらず、char 配列ポインターを受け入れるのはなぜですか?strcpychar * 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 に答える