2013-02-01 42 views
0

查看我的Previous question。我得到了这套代码的解决方案对结构内的指针指向的数组进行索引

const MEMBERS *some_members = (MEMBERS *) GET_MEM(); 
unsigned value1 = some_members->mem1; 
unsigned value2 = *some_members->mem2; 

没有工作正如我所料。但在情况下样品是

unsigned sample [4] = {2,5,6,1}; 

如何去在阵列的索引,如果我需要做索引到所述阵列的所述第三字符(即样品[3] = 1)。从结构。我是否也将价值2作为指标?

感谢所有..

+4

不是我很好地理解这个问题,而是'sample [3] == 1'(索引从零开始)。 –

+0

@AntonKovalenko谢谢...得到了纠正。 –

回答

1

在这种情况下,是的,让value2指针。即:

const MEMBERS *some_members = (MEMBERS *) GET_MEM(); 
unsigned value1 = some_members->mem1; 
unsigned *value2 = some_members->mem2; 

// These are true statements 
value2[0] == 2; 
value2[1] == 5; 
value2[2] == 6; 
value2[3] == 1; 
+0

谢谢。但似乎只有Value_2 [0] == 2。其他人没有给出实际价值... –

1

指针和数组可以访问相同。

例如:

int array[4] = { 1, 2, 3, 4 }; 
printf("Third entry in array = %d\n", array[2]); 

int *pointer = array; 
printf("Third entry in array using pointer = %d\n", pointer[2]); 

如果指针处于结构或不不要紧,只要使用正常字段访问(例如structure.pointer[2]structpointer->pointer[2])。