bate's blog

調べたこと実装したことなどを取りとめもなく書きます。

配列の添え字

二次元配列も一次元配列にされているということなのだろうか。

#include <stdio.h>

int main()
{
	int a[2][2] =
	{
		{ 0, 1 },
		{ 2, 3 }
	};

	// 普通
	for( int i = 0; i < 4; ++i )
	{
		printf( "a[%d][%d] = %d ", (i>1?1:0), i%2, a[(i>1?1:0)][i%2] );

		if( i == 1 ) printf( "\n" );
	}

	printf( "\n" );

	// 普通じゃない
	for( int i = 0; i < 4; ++i )
	{
		printf( "a[%d] = %d ", i, a[0][i] );
	}

	printf( "\n" );

	return 0;
}