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");
}

それ以外の場合、配列は最初に設定したものを保持します。では、代入は現在の値を新しい変数にコピーしますが、代入された値への参照やリンクは設定しません。元の変数が変更されたときに変更し続ける参照を作成するには、へのポインターを使用する必要がありますa

于 2013-10-22T20:33:01.253 に答える
2

あなたのコードを誤解しない限り、一連のゼロを出力します (これが配列内の唯一のデータです)。配列はループの前exampleに初期化されるため、ループ内の値を変更しても配列の内容には影響しません。a

于 2013-10-22T20:31:51.403 に答える