関数の値渡しと参照渡し



■関数の値渡しとは?
データを渡す時に値そのものを渡す方式を値渡しと言います。
(例)int _Beep(int a,int c);

■関数の参照渡しとは?
データを渡す時に値が格納されているアドレスを渡す方式を参照渡しと言います。
(例)int _Beep(int *a,int *c);

※C言語で参照渡しを行う場合は通常「*」を付けます。配列などは例外なので注意して下さい。

その他言語のうんちく (^^;

Delphi言語の場合:   ※Const(定数パラメータ)は若干違います。

VisualBasic言語の場合:

<参照渡しのサンプル-英小文字を英大文字に変換->
#include <stdio.h>
#include <ctype.h> //islower及びtoupper

void str_upper(char *moji);

void main(void)
{
 char buf[30];
 printf("文字列を入力しましょう!!\n");
 //ストリームから1行入力
 gets(buf);
 //文字列はその先頭アドレスを持つ
 str_upper(buf);
 printf("%s",buf);
 getchar();
}

void str_upper(char *moji)
{

 //NULLまでループを行う。
 while(*moji!='\0')
 {
  if (islower(*moji)) *moji=toupper(*moji);
  //アドレスをインクリメント(値をインクリメントでないので注意)
  moji++;
 }
}

※(例)「abcd」と入力したならば「ABCD」となる。




Cの基礎のページへ



ホーム PV ランキング