Project_OKI’s diary

エンジニアの勉強ブログ

C言語基礎知識20(テーブル作成とテーブルへのアクセス) 

数値のテーブル作成とテーブルへのアクセス方法について

1.目的

  • 数値テーブルを作成し、その値を表示する。

目次

2.テーブルの作成

構造体定義
typdef struct{   int 列名1,   int 列名2,   ・・・  }構造体名;
const 構造体名 テーブル名[] = { テーブル作成 };
 //テーブルへのアクセス
構造体 ポインタ名  ポインタ名 = (構造体*)テーブル名  ポインタ名[要素].列名

 

3.プログラム作成(テーブル作成とアクセス方法)

#include <stdio.h>

//構造体の作成
typedef struct{
    int row1;
    int row2;
    int row3;
}TTable;

//テーブルをtableという名前2重配列を作成
const TTable table[] = {
    {100,200,1000},
    {300,400,2000},
    {500,600,3000}
};

void funcA();

int main(void){
    // Your code here!
    //関数 funcAの実行
    funcA();
}

//関数Aを作成
//テーブルへのアクセスとその出力を行う。
void funcA(){
    //変数宣言
    int diff;
    //ポインタ情報を取得:TTest構造体を使用
    TTable *ptable;
    ptable = (TTable*)&table;

    //テーブルの1行目の値を出力
    //アクセス:ptable[要素].構造体変数名
    //要素:行、構造体変数名:列 を指定することになる。
    //テーブルの1行目の値を算出
    printf("1行目の出力\n");
    printf("line1=%d\n",ptable[0].row1); 
    printf("line2=%d\n",ptable[0].row2);
    printf("tline3=%d\n",ptable[0].row3);
    //テーブルの2行目の値を算出
    printf("2行目の出力\n");
    printf("line1=%d\n",ptable[1].row1);
    printf("line2=%d\n",ptable[1].row2);
    printf("line2=%d\n",ptable[1].row3);
    //テーブルの3行目の値を算出
    printf("3行目の出力\n");
    printf("line1=%d\n",ptable[2].row1);
    printf("line2=%d\n",ptable[2].row2);
    printf("line2=%d\n",ptable[2].row3);
    
    //テーブルの差を算出:テーブル2行目1列目-テーブル1行目2列目
    diff = ptable[1].row1 - ptable[0].row1;
    //diffの値を算出
    printf("diff=%d\n",diff);
}

 実行結果:https://paiza.io/projects/_koQFH-WNLpIiFx7udiaNQ?language=c

 

 ※構造体を使うメリット

  そのテーブルが何のテーブルなのかが分かりやすくなる。

  ここでは適当な名前を付けているが、いくつもテーブルがある場合などに便利。

 

関連記事

過去の記事:

知らないと損するお金の話(ふるさと納税、確定申告とワンストップ納税どっちが得?) - Project_OKI’s diary

C言語基礎知識6(関数) - Project_OKI’s diary

C言語基礎知識7(構造体1) - Project_OKI’s diary

C言語基礎知識8(enum:列挙型) - Project_OKI’s diary

C言語基礎知識9(typedef) - Project_OKI’s diary

C言語基礎知識10(extern宣言) - Project_OKI’s diary

C言語基礎知識11(#define) - Project_OKI’s diary