2

我正在尝试使用数组生成一系列值。我将数组的几个元素设置为变量,其余元素设置为常量。在下面的示例中,我将第一个元素设置为变量,然后使用 for 循环生成它的所有可能值。

但是,它会不断重用它初始化为的a的相同值。如何在数组中生成一系列值?

#include <stdio.h>

int main(int argc, char **argv)
{
    int a = 0;
    int b = 0;
    int c = 0;
    int d = 0;
    char example[4]={a, 0x00, 0x00, 0x00};
    int i = 0;

    for(a = 0; a < 0x7f; a++)
    {
        for(i = 0; i < 4; i++)
        {
            printf("%x ",example[i]);
        }
        printf("\n");
    }
}
4

2 回答 2

4

如果要不断更改 a 的值,则需要在数组中手动​​更改它(或使用指针)。这是手动更改的代码:

for(a=0;a<0x7f;a++)
{   
    example[0] = a;

    for(i=0;i<4;i++)
    {
        printf("%x ",example[i]);
    }
    printf("\n");
}

否则,该数组将保存您最初设置的内容。在 c 中,赋值将当前值复制到新变量中,它不会设置对所分配值的引用或链接。要创建一个随着原始变量变化而不断变化的引用,您需要使用指向a.

于 2013-10-22T20:33:01.253 回答
2

除非我误解了您的代码,否则它将打印一系列零(这是您数组中的唯一数据)。您的数组在循环之前example被初始化,因此更改循环中的值不会影响数组的内容。a

于 2013-10-22T20:31:51.403 回答