4

好的,所以我很好奇您将如何使用指针数组来访问索引中的值。例如:

printf("%c", (*character)[0]);

我知道我的代码有误,但我知道如何修复它。假设我想访问指针数组中的 0 位置,然后像上面一样打印它,我该怎么做?

4

3 回答 3

3

Assuming character is char character[] = {'1'};

character[someIndex] means someIndex[character] means  *(character+someIndex) 

If that is what you wanted to know. So you should be doing something like:

printf("%c", *(character+0));

Which is equivalent to

printf("%c", *character);

printf("%c", character[0]);

Just missed out - regarding this statement

index of a pointer array?

Please know Arrays are not Pointers. If that is where you were confused.

于 2013-09-28T06:36:41.837 回答
1

从你的问题我观察到你已经声明了一个类似这样的字符指针

char *character="something";

,现在你想通过索引来访问它的内容。
那么为什么要担心,无论您是否声明了指针数组或数组。您可以通过以下任何一种方式访问​​其内容:-

printf("%c",character[1]); //通用方法

或通过指针表示法
printf("%c",*(character+1));


printf("%c",*(1+character));//交换法则

或更令人惊讶的是您也可以使用以下方法
printf("%c",1[character]);

于 2013-09-28T07:49:38.727 回答
1

字符 *arr[20]={"Stackoverflow"};

这意味着您有一个 char 类型的指针数组,其中 20 个内存位置的地址存储在一个 20 大小的数组中。arr[0] 中的第一个内存位置指向字符串“Stackoverflow”,其余的未分配(因此您将获得垃圾值或可能出现分段错误)。现在,如果您想访问第 0 个内存位置,请执行以下操作:

printf("%s\n",arr[0]);

于 2013-09-28T08:32:32.040 回答