如何在 C 中的字符串数组上定义指针?

How to define a pointer on a array of strings in C?

谁能解释一下我如何定义这个字符串数组?

a 是一个指针,它指向一个字符数组。所以它必须是 char *a[3]?

数组定义为指向字符串文字的指针数组,如

char * a[3] = { "A", "B", "C" };

您可以使用自己的字符串文字代替“A”、“B”、“C”。

要声明指向此类数组第一个元素的指针,您可以这样写

char **p = a;

这是一个演示程序。

#include <stdio.h>

int main( void )
{
    char * a[] = { "A", "B", "C" };
    const size_t N = sizeof( a ) / sizeof( *a );

    char **p = a;

    for ( size_t i = 0; i < N; i++ )
    {
        printf( "%s ", a[i] );
    }

    putchar( '\n' );

    for ( size_t i = 0; i < N; i++ )
    {
        printf( "%s ", p[i] );
    }

    putchar( '\n' );
}
char* a[3];
a[0]="Datentypen";
a[1] = "und";
a[2] = "Variablen";