如何使用指针访问结构中的数组

时间:2013-10-23 18:21:56

标签: c

我想使用指针访问结构中的数组元素,我该怎么做?

int int_set_lookup(struct int_set * this, int item){

3 个答案:

答案 0 :(得分:1)

假设呼叫已设置并按以下方式调用:

struct int_set this[10];
int_set_lookup(this, 5);

函数int_set_lookup()可以直接查找项目:

int int_set_lookup(struct int_set* this, int item)
{
    /* where x is the item in the struct you want to lookup */
   return this[item].x;

    /* or, if int_set has an array member y, this accesses
       the 0th element of y in the item'th element of this */
    return this[item].y[0];
}

答案 1 :(得分:1)

我假设结构中包含的数组是“a”,而p是指向结构的指针:

p->a[3]

答案 2 :(得分:1)

您必须使用箭头操作符->

例如,p是指向结构s1的指针,然后是

#include <stdio.h>

int main(void) {        
   struct s{
    int a[10]; // array within struct 
   };    
  struct s s1 ;
  s1.a[0] = 1 ; // access array within struct using strct variable 
  struct s *p = &s1 ;  // pointer to struct
  printf("%d", p->a[0]);//via pointer to struct, access 0th array element of array member

  return 0;
}

a[0]p->a[0];

访问