私はこの方法を見つけて理解しました:
void PrintString(char *String_Ptr)
{
//Print String
}
関数宣言でポインターをパラメーターとして宣言する他の方法が見つかりません。
宿題の質問から、同じことを行う他の方法があると信じるようになりました。
私はこの方法を見つけて理解しました:
void PrintString(char *String_Ptr)
{
//Print String
}
関数宣言でポインターをパラメーターとして宣言する他の方法が見つかりません。
宿題の質問から、同じことを行う他の方法があると信じるようになりました。
質問に記載されている以外にもいくつかの可能性があります。
String_Ptr
以下は、配列であることを示唆する欺瞞的な構文にもかかわらず、問題のバージョンとまったく同じです。そうではなく、ポインタです:
void PrintString(char String_Ptr[])
{
printf("%s\n", String_Ptr);
}
に渡したい文字の配列の長さ (たとえば 10 文字) がわかっている場合は、PrintString()
そのような配列へのポインターを渡すこともできます。
void PrintArray10(char (*Array_Ptr)[10])
{
printf("%s\n", *Array_Ptr); // assuming the array is '\0'-terminated
}
int main(void)
{
char a[10] = "Blah!";
PrintString(a); // first 2 methods
PrintArray10(&a); // 3rd method
return 0;
}
次の方法でポインターをカモフラージュすることもできますtypedef
。
typedef char* pchar;
void PrintString(pchar String_Ptr)
{
printf("%s\n", String_Ptr);
}
typedef char (*pchararr10)[10];
void PrintArray10(pchararr10 Array_Ptr)
{
printf("%s\n", *Array_Ptr); // assuming the array is '\0'-terminated
}