ここから本文です

C言語(VC++)の関数で、関数宣言の引数の部分に、「&」をつけて変数名を宣言する...

aib********さん

2006/11/811:36:35

C言語(VC++)の関数で、関数宣言の引数の部分に、「&」をつけて変数名を宣言するのはどのような場合なのでしょうか?
「*」をつけて宣言するのはポインタというかアドレス渡しの時だとわかるのですが、「&」をつけて宣言してあるのは初めて見たので・・・。

例:
void TwipToScreenPixel(int iTwip, int &iPixel)

void CommaPlus(long suchi,CString &str)

閲覧数:
31,581
回答数:
1

違反報告

ベストアンサーに選ばれた回答

roy********さん

2006/11/811:55:21

それは,C++ の記法で,C 言語では使えません。
「&」が仮引数宣言につくと,その変数が参照で渡されます。
つまり,
void incVal(int x) {
x++;
}
void incRef(int &x) {
x++;
}
について,int a = 1; について,
incVal(a);
を実行しても a の値は変化しません(値渡しだから当然です)。しかし,
incRef(a);
を実行すると,a の参照(変数 a という「箱」そのもの)が渡るので,実行後に a は 2 になります。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる