配列を仮引数に

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Lbfuvab

配列を仮引数に

#1

投稿記事 by Lbfuvab » 17年前

初めまして。Cの初心者なLbfuvab
配列の要素ではなく、そのものを仮引数として扱うにはどうすればよいのでしょうか?

管理人

Re:配列を仮引数に

#2

投稿記事 by 管理人 » 17年前

はじめまして、Lbfuvabさん・・・何て読むんでしょう?

配列の関数間値受け渡しの事ですね。

int a[3];

において

aと書くと、配列の先頭アドレスを示しますね。これをわたしてやればいいんです。

○○(a);

こんな感じで。
下にサンプルを作ったんでみてください。
#include <stdio.h>

void arr(char x[/url]){
	printf("%s\n",x);
}

void main(){
	char a[5]="abcd";
	arr(a);
	return;
}
 

x[ ]は*xと書いてもいいです。 
x[ ]と中身を省略してもいいですし。a[5]を渡しているのですからx[5]とかいてもいいです。
最も次元の高い配列要素数は省略できるという性質があります。
2次元配列になると、その意味がわかります。
以下2次元配列の例を出します。
#include <stdio.h>

void arr(char x[/url][5]){
	printf("%s\n",x[0]);
	printf("%s\n",x[1]);
}

void main(){
	char a[2][5]={"abcd","defg"};
	arr(a);
	return;
}
 
 
 
x[ ][5]のうち[5]の5は省略できません。
・・とあれこれ言っても解りにくいと思いますのでこの辺で。
何かわからなければまた聞いてください。

閉鎖

“C言語何でも質問掲示板” へ戻る