• 検索結果がありません。

闕ウ?隹コ。陷?陋サ蜉ア定イゑス。邵コ?br/>

N/A
N/A
Protected

Academic year: 2021

シェア "闕ウ?隹コ。陷?陋サ蜉ア定イゑス。邵コ?br/>"

Copied!
3
0
0

読み込み中.... (全文を見る)

全文

(1)

1

一次元配列を渡す

1.1

学習のポイント

配列データを関数に渡す方法を学びます。

1.2

一次元配列を渡す

配列データは、call by referenceを用いた引数渡しで行います。  つまり、配列の全データを関数に渡すのではなく、配列の先頭アドレスだけを渡し、後 は関数側でポインタを用いて各配列要素を参照するという方法を取るのです。 たとえば、 int a[100]; という配列を関数に渡すには、 func(a); void func(int b[]) { ... } とします。配列名のaは配列の先頭アドレスを示しますから、これは実引数にして渡しま す。仮引数bは配列の実体を受けるものではありませんから、int b[ ];の様にポインタ として宣言し、[ ]内には値を書きません。なお、int b[ ];とする代わりにint *b;とし ても全く同じです。  関数側では、b[0]からb[99]とすることで呼び出し側の配列a[0]からa[99]を参照する ことができます。 「C言語」(河西朝雄著 ナツメ社)110頁 1

(2)

1.3

例題

25

一次元配列a[ ]の各要素の合計を求める関数isum()を作りなさい。 /* reidai25.c 一次元配列a[]の各要素の合計を求める関数isum()を作りなさい。 */ #include <stdio.h> int isum(int b[]) { int s,i; s = i = 0; while(b[i] != -999){ s = s + b[i++]; } return s; } int main() {

static int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, -999};

printf("gokei = %d\n", isum(a));

return 0; }

(3)

1.4

練習問題

25

配列a[ ]の内容をbにコピーする関数arraycopy()を作りなさい。 /* rensyu25.c 配列a[ ]の内容をbにコピーする関数arraycopy()を作りなさい。 */ #include <stdio.h>

void arraycopy(int a[], int b[]) { int i = 0; while(a[i] != -999){ b[i] = a[i]; i++; } b[i] = -999; } int main() {

static int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, -999}; int b[100]; int i = 0; arraycopy(a, b); while(b[i] != -999){ printf("%d ", b[i++]); } return 0; } 3

参照

関連したドキュメント

スターリングエンジンは同一シリンダにディスプレーサピストンとパワーピストンを配置するβ形と言われるタイ

*海外派遣にかかる渡航や現地滞在にかかる手配は UNV を通じて行います (現地生活費の支給等を含む)

0.1uF のポリプロピレン・コンデンサと 10uF を並列に配置した 100M

[r]

備考 1.「処方」欄には、薬名、分量、用法及び用量を記載すること。

パキロビッドパックを処方入力の上、 F8特殊指示 →「(治)」 の列に 「1:する」 を入力して F9更新 を押下してください。.. 備考欄に「治」と登録されます。

現状では、3次元CAD等を利用して機器配置設計・配 管設計を行い、床面のコンクリート打設時期までにファ

16 単列 GIS配管との干渉回避 17 単列 DG連絡ダクトとの干渉回避 18~20 単列 電気・通信ケーブル,K排水路,.