San*_*ius 2 c arrays pointers c-strings string-literals
大家好,下面我有一些代码可以初始化一个有 4 个元素的数组,但有 50 个元素的空间。
现在我希望我可以手动向数组添加一些元素,但它对我不起作用有人可以帮助我吗?就像这里我想将 Sander 添加到第 5 个元素。
#include <stdio.h>
int main()
{
int i;
char *arr[50] = {"C","C++","Java","VBA"};
char *(*ptr)[50] = &arr;
(*ptr)[5]="Sander";
for(i=0;i<5;i++)
printf("String %d : %s\n",i+1,(*ptr)[i]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
多谢
看来你的意思是以下
#include <stdio.h>
int main( void )
{
int i;
char *arr[50] = {"C","C++","Java","VBA"};
char **ptr = arr;
ptr[4] = "Sander";
for ( i = 0; i < 5; i++ )
printf("String %d : %s\n", i+1, ptr[i] );
return 0;
}
Run Code Online (Sandbox Code Playgroud)
或以下
#include <stdio.h>
int main( void )
{
int i;
char *arr[50] = {"C","C++","Java","VBA"};
char * ( *ptr )[50] = &arr;
( *ptr )[4] = "Sander";
for ( i = 0; i < 5; i++ )
printf("String %d : %s\n", i+1, ( *ptr )[i] );
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,输出都是
String 1 : C
String 2 : C++
String 3 : Java
String 4 : VBA
String 5 : Sander
Run Code Online (Sandbox Code Playgroud)