>  > CRIMSON(クリムソン) CLUB LINEA L747S (クラブリネア L747S) 21インチ 11.0J PCD:115 穴数:5 inset:9 DISK TYPE:HIGH カラー:SMB [ホイール1本単位]/H
第27回
データ構造(6)~ポインタを使った引数の受け渡し
【汎用 トラスト】GReddy グラウンドワイヤリングキット > DIXCEL (ディクセル) リア ブレーキローター PD 1251126 BMW MINI ROADSTER (R59) SY16S 12/01~ COOPER S > 数値をポインタで渡す
{yahoojp} {grapecity.com}

CRIMSON(クリムソン) CLUB LINEA L747S (クラブリネア L747S) 21インチ 11.0J PCD:115 穴数:5 inset:9 DISK TYPE:HIGH カラー:SMB [ホイール1本単位]/H

これまでに LEATT BRACE リアットブレイス 肘プロテクター・エルボーガード・エルボーパッド LEATT AIRFLEX エルボーガード サイズ:M (24-28cm)、ポインタと文字列(char型配列)は相性がよく 、文字列の処理ではポインタが大活躍することを説明しました。そして前回(第26回 データ構造(5)~ポインタを使った文字列処理関数を作る) アールズギア rs gear SH07-02DB-XL ソニック ツインタイプマフラー用 サイレンサー 左側 チタンドラッグブルー CB1300SF/CB1300SB、その例として文字列を扱う関数をいくつか紹介しました。

もちろん、文字列以外の型に対してもポインタは使えます。数値型を扱う関数で、ポインタを使って引数を渡すとどうなるのか見てみましょう。

15インチ サマータイヤ セット【適応車種:セレナ(C27系 2WD)】MONZA JAPAN JPスタイル クレーヴァ ブラックメタリック/ポリッシュ 6.0Jx15エナセーブ EC202L 195/65R15

CRIMSON(クリムソン) CLUB LINEA カヤバ】トッポ L747S (クラブリネア L747S) 21インチ 11.0J PCD:115 穴数:5 inset:9 DISK TYPE:HIGH カラー:SMB [ホイール1本単位]/H DAINESE(ダイネーゼ)VELOSTER

まず、整数型の引数を2乗する関数isquareを作ってみます。処理を分かりやすくするため、ここでは変数をint型とします。リスト1のような形が一般的でしょう。引数nにn自身を乗算し、

CRIMSON(クリムソン) CLUB LINEA L747S (クラブリネア L747S) 21インチ 11.0J PCD:115 穴数:5 inset:9 DISK TYPE:HIGH カラー:SMB [ホイール1本単位]/H

COBRA ソロ ラッゲージラック for YAMAHA XVS1300A V-Star #63-305, New KFI 3500 lb ステルス Edition Winch & Model Specific Mounting Bracket - 2002-2005 Polaris レンジャー 500 6x6 Full-サイズ UTV (海外取寄せ品), アーク・ヒル GPS&フルセグ用フィルムアンテナセット パイオニア用 HF-201 ADG-7408 (1085033)【smtb-s】, 【GG7/8 フィットシャトル シエクル】レスポンスリング 【シングルタイプ】 RH01RS, 送料無料◆PROXES CF2◆205/50R17 89V◆1本価格◆新品夏タイヤ◆トーヨータイヤ TOYO TIRES◆プロクセス GruppeM グループエム FRI-0316 RAM AIR SYSTEM ラムエアシステム BMW用, ブリッツ ライフダンク JB3/4 NUR-SPEC K マフラー JB3 2WD 用, 15インチ サマータイヤ セット【適応車種:プレオ(L275、285系)】WEDS レオニス MX ハイパーシルバーIII/SCマシニング 4.5Jx15エナセーブ EC202L 165/55R15, イグニッションコイル ネイキッド NAKED L750S, L760S EF-DET(ターボ) H11.11~H15.12 純正同等品 90048-52126 3本セット 送料無料, スカイライン用 プロテクターフロントフエンダーLHスカイライン 63843-AM800 日産純正部品 [ホイール1本(単品)] SSR / EXECUTOR EX05 (BD) 19インチ×7.5J PCD:112 穴数:5 インセット:50

CRIMSON(クリムソン) CLUB LINEA L747S (クラブリネア L747S) 21インチ 11.0J PCD:115 穴数:5 inset:9 DISK TYPE:HIGH カラー:SMB [ホイール1本単位]/H:【送料無料】 LEDバルブ 車検対応 スズキ グランドエスクード H4 バルブ 左右セット 純正バルブ交換 高輝度 ヘッドライト 用 Hi/Low hi-low 切替 6000K 車 車用 車検部品 車検 SUZUKI 【即納】 【H024-A】N-BOX [H23/12-H25/12][JF1 / JF2] ベレッツァアブソルート Bellezza ベレッツァ シートカバー

CRIMSON(クリムソン) CLUB LINEA L747S (クラブリネア L747S) 21インチ 11.0J PCD:115 穴数:5 inset:9 DISK TYPE:HIGH カラー:SMB [ホイール1本単位]/H.■DIXCEL(ディクセル) ルノー メガーヌ 2 1.6 16V / 2.0 16V MK4M/MK4MM/MF4/MF4M RENAULT MEGANE 2 ブレーキパッド フロント M タイプ ★色番号塗装発送CR50 エスティマ ボンネットスポイラー【ケンスタイル】GSR50W/55W/ACR50W/55W ESTIMA 前期 AERAS ボンネットスポイラー

【SSR】 EXECUTOR EX05 (エグゼキューター EX05) 19インチ 9.0J PCD:112 穴数:5 inset:27 ブラッシュド [ホイール1本単位] [H] 本州送料無料!CLAZZIO クラッツィオセンターレザーニッサン キャラバン E26系(福祉車両) 9人用

、その結果を関数の戻り値とします。

この関数は、以下のような形で使用できます。
int x, ans;
x = 10;
ans = isquare(x); ---- 変数ansにxの2乗が代入される

これで 【ブレス】フィットシャトル/リヤアンダースポイラー 塗装済み品 [クリスタルブラックパール]、変数ansにはxの保持している値10の2乗である100が代入されます。isquare関数の引数とした変数xの値は変わりません。isquare関数にはxという変数そのものではなく、『変数xの保持している値』だけが渡されるからです。

リスト1:引数の値を2乗して返す関数
int ipower(int n)
{
 return(n * n);
}

仮引数と実引数

リスト1の
int isquare(int n)
のnのように関数の定義で示される引数を「仮引数」と言い、上のソース
ans = isquare(x);
のxのように実際に関数を呼び出すときに与える引数を「実引数」と言います。関数定義時の仮引数は、与えられた引数の値を関数内でどのように処理するかを記述するための『仮の入れ物』であって [ホイール1本(単品)] CRIMSON / CLUB LINEA L747 (BKP) 19インチ×9.5J PCD:114.3 穴数:5 インセット:-15、その関数が呼び出されたとき実際に処理される値は呼び出し側で設定する実引数である……ということです。

このことは、値の入れ物──変数の扱いが仮のものか実際の処理対象なのかという意味上の区別を指しているのであって、関数内で処理されるのは変数の保持している「値」でしかありません。

Project μ プロジェクト ミュー ブレーキパッド EURO SPORTS Excellence リア Mercedes-Benz G463 463236 G550L 【H024-A】N-BOX [H23/12-H25/12][JF1 / JF2] カジュアルエスライン ライトベージュ Bellezza ベレッツァ シートカバー

引数を書き換える関数

では、関数isquareをリスト2のように定義するとどうなるでしょう?

この関数は値を返しません。その代わり 【PIRELLI[ピレリ]】[DIABLO ディアブロ] 160/60ZR17 TL (MC)69W リア用 国内正規品、仮引数が*の付いたint型のポインタになっています。引数がポインタの場合、実際に関数を呼び出す際には変数のアドレスを設定します。アドレス取得演算子&を変数名の前に記述すれば、変数のアドレスが取り出せます。

従って、リスト2の関数は以下のようにして呼び出します。変数ansの前に&記号が付いていることに注意してください。
int ans = 10;
isquare(&ans);

これで、変数ansの保持している値が、関数を呼び出した後には2乗されて100になっています。リスト1の場合とは異なり、

CRIMSON(クリムソン) CLUB LINEA L747S (クラブリネア L747S) 21インチ 11.0J PCD:115 穴数:5 inset:9 DISK TYPE:HIGH カラー:SMB [ホイール1本単位]/H

、引数に設定した変数の保持する値そのものが書き換えられています。

リスト2:引数の示す変数の中身を2乗する関数
void ipower2(int *n)
{
 *n *= *n;
 /* '*n'(nの示す場所の値)に*nを乗算する */
}

【質問1】コラムをどれくらい読みましたか?

{yahoojp}jpprem01-zenjp40-wl-zd-19365