2013-02-01 40 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])。