スポンサードリンク
HOME > C言語 > 配列を渡す方法(文字列含む)

C言語 - 配列を渡す方法(文字列含む)

このページは、ポインタと配列の関係 の記事を読んでおくと
理解しやすくなります。

配列を渡す際は、必要な情報を工夫して渡すようにします。

ここでは、配列の先頭アドレスと要素数を指定してやる方法を紹介します。

#include <stdio.h>

void show(int* ip, int n);

void main(void) {
   int idata[3];

   idata[0] = 5;
   idata[1] = 15;
   idata[2] = 25;

   show(idata, 3);  // show(&idata[0], 3); とも書ける。

}

void show(int* ip, int n) {
   int ans = 0;

   for (i=0; i<n; i++) {
      ans = ans + *ip;
      ip++;
   }

   printf("合計=%d\n", ans);
}


このプログラムは、配列idataのデータを全て足して表示するプログラムです。

関数showには、idataの先頭アドレスと要素数を渡しています。

ポインタだと多少分かりずらいので、引数を配列形式で記述する事も可能です。

#include <stdio.h>

void show(int ip[], int n);

void main(void) {
   int idata[3];

   idata[0] = 5;
   idata[1] = 15;
   idata[2] = 25;

   show(idata, 3);  // show(&idata[0], 3); とも書ける。

}

void show(int ip[], int n) {
   int ans = 0;

   for (i=0; i<n; i++) {
      ans = ans + ip[i];
   }

   printf("合計=%d\n", ans);
}


配列形式で記述していますが、処理自体は同じです。



配列を渡せると言う事は、配列で表現される文字列も渡せる事になります。

#include <stdio.h>

void show(char* cp);

void main(void) {
   char cdata[5];

   cdata[0] = 's';
   cdata[1] = 't';
   cdata[2] = 'a';
   cdata[3] = 'r';
   cdata[4] = '\0';

   show(cdata);  // show(&cdata[0]); とも書ける。

}

void show(char* cp) {

   printf("文字列=%s\n", cp);
}


文字列を渡す場合も先頭アドレスを渡してやればOKです。

文字列の終わりは、NULL(\0)が目印なので、問題ありません。

そのままprintf関数で表示しています。



スポンサードリンク







HOME

言語解説編
プログラミング用語・知識

C言語

C++言語

Java

C#

Visual Basic.NET

アプリケーション編
C言語による
コンソールプログラミング




Copyright (C) プログラミングランド All Rights Reserved