我正在使用 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)
应该是二维数组吧?因为数组基本上是指针。你能解释一下吗?谢谢。