在c中将数组指针的第i个设置为变量

在c中将数组指针的第i个设置为变量,c,arrays,pointers,C,Arrays,Pointers,我想知道有没有办法将指针数组中的i-th或字符串设置为局部变量 比如说 char a = "string"; char b = "string2"; char *args[3]; args[0] = a; args[1] = b; args[2] = NULL; 所以, agrs = {"string","string2",NULL}; 谢谢 您当然可以按变量进行索引,如果您想要的是: char *a = "string", *b = "string2"; size_t index = 0;

我想知道有没有办法将指针数组中的i-th或字符串设置为局部变量

比如说

char a = "string";
char b = "string2";
char *args[3];
args[0] = a;
args[1] = b;
args[2] = NULL;
所以,

agrs = {"string","string2",NULL};

谢谢

您当然可以按变量进行索引,如果您想要的是:

char *a = "string", *b = "string2";
size_t index = 0;
char *args[3];

args[index++] = a;
args[index++] = b;
args[index++] = NULL;

我更正了
a
b
的声明,使它们成为指针。

是的,您可以这样做,但不能使用您现在拥有的<必须正确声明代码>a和
b
-

char *a = "string";                //string literal (constant)
char *b = "string2";               // or write as char b[] = "string2"; 
char *args[3];
args[0] = a;
args[1] = b;
args[2] = NULL;

这是无效的C,但将其视为伪代码,
a
是“本地的”(如中所示,在相同的范围内,实际上是我在那里看到的唯一范围)是一个字符。如果你想输入一个字符串,你必须使用
char*a
常量字符*a。看一看。