无法弄清楚C中的指针/数组/字符串

时间:2014-03-03 03:47:05

标签: c arrays pointers

我是C的新手,我不知道如何处理这个数组:

char *args[MAX_LINE/2 + 1];

这条线到底意味着什么?它是指向字符数组的指针吗? 给出的赋值是用多个字符串标记填充此数组,但我不明白char指针如何存储整个字符串?

2 个答案:

答案 0 :(得分:5)

char *args[MAX_LINE/2 + 1];

args是指向大小为MAX_LINE / 2 + 1的char的指针数组。每个元素是char*,即每个元素可以是一个字符串。你必须初始化它们(即,将它们指向某个有效的位置。)例如,从stdin读取:

args[0] = malloc(some_size);
/* read a string from standard input */
fgets(args[0], some_size, stdin);

答案 1 :(得分:0)

这基本上是一个指针数组。每个指针指向一个包含 char 的位置。

请查看此处了解有关处理它的更多详细信息。 http://www.tutorialspoint.com/cprogramming/c_array_of_pointers.htm