トリッキーコードネット トップへ戻る   C/C++, Java, Perl, PHP, JavaScript, アルゴリズム, ショートコーディング, IOCCCコードの解説, 等々

サイト情報

トリッキーなコード

7行プログラミング

物凄いコード集

アルゴリズム

データ構造

C/C++な話題

コードサンプル

ツール/環境構築

開発ノウハウ 等

ネタ/ジョーク集

おススメ書籍/サイト

サイトTOP >> トリッキーなコード >> 配列の添え字を1開始(1-base)にする裏技 (C言語)

配列の添え字を1始まり(1-base)にする裏技 - (C言語)

C言語配列の添え字の始まりは0です。
つまり、配列の内容を先頭から順に表示する際は、以下の様に 0~(要素数未満)までの添え字をループで辿ります。

#include <stdio.h>

int main(void)
{
    int i;
    int iarr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};

    for (i = 0; i < 9; i++) {
        printf("%d ", iarr[i]);
    }

    return 0;
}
0が基準(0が添え字の開始)になっている為、これを0-baseの配列といいます。 0-baseの配列は、プログラミングをする上では非常に便利な事が多いのですが、 時と場合によっては、現実世界の感覚で、配列の添え字を1始まり(1-base)にしたい時があるかもしれません。 そんな時に使える裏技が、以下のコード^^;)↓↓ (本来0-baseの配列を、1-baseでアクセスする事ができます♪)
int * array = &iarr[-1];
使い方)
#include <stdio.h>

int main(void)
{
    int i;
    int iarr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    int * array = &iarr[-1];

    for (i = 1; i <= 9; i++) {
        printf("%d ", array[i]);
    }

    return 0;
}
結果) 配列の添え字が1始まり(1-base) - C言語 はい、見事に配列の情報へ1-baseでアクセスできました~♪ ついでに、当たり前ですがC言語の規格違反の裏技の為、予期せぬバグが起こるかもしれませんのでご注意・・・。
         このエントリーをはてなブックマークに追加   


作業効率化・ライフハックのオススメ記事




コンピュータ・テクノロジーのオススメ記事





恋愛・人間関係のオススメ記事




※ 当サイトは、トップページからリンクで辿る事の出来るページに限り、リンクフリーです。
※ 当サイトの閲覧/利用によって生じた如何なる損害も、当サイト管理人は責任を負いません。
※ 当サイトの内容を転載される場合は、当サイトへのリンクをお願い致します。