从struct数组中为变量赋值

时间:2015-12-01 04:05:40

标签: c arrays struct

我的头文件中有一个结构数组,我在主文件中写了一些代码。

char temp, index;
for (index = 0; index < 5; index++)
       temp = cards[index].foo;

我注意到temp得到了第一个char的值但是它不会改变 之后;即如果struct array中的第一个char是&#39; c&#39;那就得到了&#39; c&#39; 但如果第二个字符是&#39; f&#39;它不会得到&#39; f&#39; - 它会留在&#39; c&#39;。

我该如何解决这个问题?

我的struct数组在我的标题中,看起来像这样

struct x{
char foo;
 } cards[Size];

1 个答案:

答案 0 :(得分:1)

Hai bro我只是在C中试过你的代码似乎工作正常.... 我的头文件是

#include<stdio.h>
#define Size 5

struct x
{
    char foo;
} cards[Size];

主要是:

#include <stdio.h>
#include <stdlib.h>
#include"my.h"

int main()
{
    int i,index;
    char temp;
    for (i = 0; i < 5; i++)
        cards[i].foo = 'a' + i;
    for (index = 0; index < 5; index++)
    {
        printf("c[%d].foo = %c\n", index, cards[index].foo);
        temp = cards[index].foo;
        printf("t = %c\n", temp);
    }

}

输出是:

c[0].foo = a
t = a
c[1].foo = b
t = b
c[2].foo = c
t = c
c[3].foo = d
t = d
c[4].foo = e
t = e