簡體   English   中英

索引結構中指針指向的數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM