如何在 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";
谁能解释一下我如何定义这个字符串数组?
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";