初めまして。Cの初心者なLbfuvab
配列の要素ではなく、そのものを仮引数として扱うにはどうすればよいのでしょうか?
配列を仮引数に
Re:配列を仮引数に
はじめまして、Lbfuvabさん・・・何て読むんでしょう?
配列の関数間値受け渡しの事ですね。
int a[3];
において
aと書くと、配列の先頭アドレスを示しますね。これをわたしてやればいいんです。
○○(a);
こんな感じで。
下にサンプルを作ったんでみてください。
x[ ]は*xと書いてもいいです。
x[ ]と中身を省略してもいいですし。a[5]を渡しているのですからx[5]とかいてもいいです。
最も次元の高い配列要素数は省略できるという性質があります。
2次元配列になると、その意味がわかります。
以下2次元配列の例を出します。
x[ ][5]のうち[5]の5は省略できません。
・・とあれこれ言っても解りにくいと思いますのでこの辺で。
何かわからなければまた聞いてください。
配列の関数間値受け渡しの事ですね。
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は省略できません。
・・とあれこれ言っても解りにくいと思いますのでこの辺で。
何かわからなければまた聞いてください。