ページ 11

配列を仮引数に

Posted: 2007年4月01日(日) 04:19
by Lbfuvab
初めまして。Cの初心者なLbfuvab
配列の要素ではなく、そのものを仮引数として扱うにはどうすればよいのでしょうか?

Re:配列を仮引数に

Posted: 2007年4月01日(日) 04:59
by 管理人
はじめまして、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は省略できません。
・・とあれこれ言っても解りにくいと思いますのでこの辺で。
何かわからなければまた聞いてください。