小编tob*_*kll的帖子

二维数组作为指向字符数组的指针

我正在使用 C 中的一些代码,并且我试图理解指针和数组之间的关系。您可能知道,当我想制作数组时,可以这样做:

char * arr = "abc";
Run Code Online (Sandbox Code Playgroud)

或者

char arr[] = {'a','b', 'c'};
Run Code Online (Sandbox Code Playgroud)

但是当我想做二维数组时。必须这样做

char arr[3][10];
Run Code Online (Sandbox Code Playgroud)

当我尝试将字符串加载到它时,为什么这样的声明会崩溃。

char * names[3];

for ( int i = 0; i < 3; i++ ) {
    printf("Enter name %d: ", i+1 );
    scanf("%s", names[i]);
}
// print names
printf("\nEntered names are: \n");
for ( int i = 0; i < 3; i++ ) {
    printf("%s\n", names[i] );
}
Run Code Online (Sandbox Code Playgroud)

应该是二维数组吧?因为数组基本上是指针。你能解释一下吗?谢谢。

c arrays pointers

3
推荐指数
1
解决办法
101
查看次数

标签 统计

arrays ×1

c ×1

pointers ×1