好的,所以我很好奇您将如何使用指针数组来访问索引中的值。例如:
printf("%c", (*character)[0]);
我知道我的代码有误,但我知道如何修复它。假设我想访问指针数组中的 0 位置,然后像上面一样打印它,我该怎么做?
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.
从你的问题我观察到你已经声明了一个类似这样的字符指针
char *character="something";
,现在你想通过索引来访问它的内容。
那么为什么要担心,无论您是否声明了指针数组或数组。您可以通过以下任何一种方式访问其内容:-
printf("%c",character[1]);
//通用方法
或通过指针表示法
printf("%c",*(character+1));
或
printf("%c",*(1+character));
//交换法则
或更令人惊讶的是您也可以使用以下方法
printf("%c",1[character]);
字符 *arr[20]={"Stackoverflow"};
这意味着您有一个 char 类型的指针数组,其中 20 个内存位置的地址存储在一个 20 大小的数组中。arr[0] 中的第一个内存位置指向字符串“Stackoverflow”,其余的未分配(因此您将获得垃圾值或可能出现分段错误)。现在,如果您想访问第 0 个内存位置,请执行以下操作:
printf("%s\n",arr[0]);