如何编辑指针数组的索引?

时间:2013-09-28 06:32:33

标签: c arrays pointers indexing

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

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

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

3 个答案:

答案 0 :(得分:3)

假设字符为char character[] = {'1'};

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

如果那是你想知道的。所以你应该做的事情如下:

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

相当于

printf("%c", *character);

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

错过了 - 关于这个陈述

  

指针数组的索引?

请知道Arrays are not Pointers。如果这是你感到困惑的地方。

答案 1 :(得分:1)

从你的问题我发现你已经宣布了一个像这样的字符指针

char *character="something";

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

printf("%c",character[1]); //一般方法

或用指针符号
printf("%c",*(character+1));


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

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

答案 2 :(得分:1)

char * arr [20] = {“Stackoverflow”};

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

的printf( “%S \ n” 个,ARR [0]);