[英]Indexing an array pointed to by a pointer within a Structure
看看我以前的問題 。 我用這組代碼得到了解決方案
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個字符(即sample [3] = 1。)進行索引,我該如何在數組中進行索引。 我也將value2作為指針嗎?
謝謝大家......
在這種情況下,是的,使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;
指針和數組可以被訪問。
例如:
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]
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.