いつも感謝しています。Nです。
関数に情報を渡すには引数というものを用いる、そして引数は複数であっても良いというお話をしてきました。
今回も、引数の続きをお話したいと思います。
今回の内容を押さえておくことで、後々お話する”ポインタによる引数渡し”がグッと分かってくるので是非理解してくださいね。
なお、現時点では「ポインタ?、なんだそりゃ?」と思ったとしても全然OKです。
まずは、今回お話することに集中してください。
では具体的にお話します。
今回話す内容でまず押さえておいて欲しいのは、
「引数は関数に情報を渡しているんだ」ということを再度意識するということです。
そして現時点では基本的に
「引数として渡されたおおもとの情報は、自作関数の中では変えられない!」
ということを覚えておいてください、基本的に。
実際にサンプルプログラムを書いて説明します。
#include <stdio.h>
/* プロトタイプ宣言 */
int myFunc( int a, int b );
int main( void )
{
int a;
int b;
/* おおもとの情報 */
a = 3;
b = 5;
/* 自作関数にa=3, b=5という情報を渡す */
myFunc( a, b );
/* 自作関数実行後のa, bの値を表示 */
printf("a =%d\n",a);
printf("b =%d\n",b);
return( 0 );
}
/* 自作関数 */
int myFunc( int a, int b )
{
/* あえて、渡された情報を変えてみます !*/
a = 30;
b = 50;
return( 0 );
}
このサンプルプログラムでは、
1: おおもとの情報として、a = 3, b = 5を自作関数myFuncに渡し
2: 自作関数myFuncの中で、敢えて渡された引数(情報)を変更することを試みています。
3: そして自作関数myFunc実行後のa, bの値を表示しています。
さぁ、結果はどうなるでしょうか?
少し本ブログを読むのを止めて、
実際にサンプルプログラムを動かしてみてください。
・・・・・
・・・・・
・・・・・
・・・・・
・・・・・
実行結果:
a = 3
b = 5
そう、a = 30, b = 50になっていませんね!。
これが、先ほど述べた
「引数として渡されたおおもとの情報は、自作関数の中では変えられない!」
ということです。
今回は、このルールを実際にサンプルプログラムを書いて体験してください。そして実感として、「あっ、そうなんだ!」と感じるようにしてくださいね。
---
※最後に今日は「お知らせ」があります。
近々、「メルマガ」を発行しようと考えています。
メルマガの内容としては、無料購読してくださる方が、
「プログラムを自分自身で考えだす能力を身につけられる」
ようなものにしようと考えています。
私が思うに、初心者さんが出くわす壁として
1: C言語の基礎的文法理解
2: 基礎的文法理解後、その知識要素がバラバラで組立ることができない
の2点があると思います。
1に関しては、本ブログでカバーしようと考えています。
で、2の能力を開発するには、
一つのプログラムを最初から最後まで作るということを体験してもらう必要があるなぁと考えました。
そして、それを伝えるにはブログだけではどうしても限界があると思い、より親密な手段としてのメルマガでお伝えしようと考えました。
現在、皆さんが
「楽しく、分かりやすい」そして「プログラムを考え出す能力を身につけられる」には、どのようにメルマガでお伝えすればよいか構想中です。
構想出来上がりしだい、
本ブログで「メルマガ発行のお知らせ」を改めて致しますので、興味のある方は是非そのときに購読の程お願いします。
読者の皆さんに、すべてのよきことが
なだれのごとくおきますように。
N