数値のテーブル作成とテーブルへのアクセス方法について
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
※構造体を使うメリット
そのテーブルが何のテーブルなのかが分かりやすくなる。
ここでは適当な名前を付けているが、いくつもテーブルがある場合などに便利。
関連記事
過去の記事:
C言語:
・組み込みの為のC言語基礎知識1(printf) - Project_OKI’s diary
・C言語基礎知識2(for分で処理を繰り返す) - Project_OKI’s diary
・C言語基礎知識3(配列) - Project_OKI’s diary
・知らないと損するお金の話(ふるさと納税、確定申告とワンストップ納税どっちが得?) - 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