yuu_nkjm blog
2012-02-10(Fri) [長年日記]
[Programming][Java][C/C++] 値渡しと参照渡し,参照とポインタ,直接参照と間接参照
値渡しと参照渡し,参照とポインタ
値渡しと参照渡し (と参照の値渡し) - 予定は未定Blog版が分かりやすかった.
関連ページ
- 値渡しとは (pass by value, call by value) あたいわたし: - IT用語辞典バイナリ
- 参照渡しとは (call by reference) さんしょうわたし: - IT用語辞典バイナリ
- 値渡しと参照渡し (と参照の値渡し) - 予定は未定Blog版
- 「参照渡し」と「参照の値渡し」の差 - 神様なんて信じない僕らのために
- Javascript のスコープとか参照とかクロージャとか - EAGLE 雑記
参照とポインタ,直接参照と間接参照
Javaの参照の値渡しと参照渡し
Javaでは「参照の値渡し」と「参照渡し」を混同しやすい.下記の1番上のページが参考になると思う.
- 値渡しと参照渡し (と参照の値渡し) - 予定は未定Blog版
- 疑問メモ: 値渡し、参照渡し、Java、C - 虎塚
- メソッドの引数の参照渡しはできますか? - Java Solution - @IT
以下,草稿.
#include
void changeValueCallbyRef(int& val) {
// 実引数として与えられた変数をそのまま操作できるイメージ.
// valはaそのもの.エイリアスとも呼ばれる.
printf("val=%d, pointer of val=%d\n",val,&val);
val = 999;
}
void changeValuePointer0(int* val){
// 変数valが作成され,aへのポインタが格納される.
printf("val=%d, pointer of val=%d\n",val,&val);
// 「ポインタ変数」valに代入しても,aに影響はない
int b = 111;
val = &b;
}
void changeValuePointer1(int* val){
//「ポインタ変数」の参照先に値を格納する.
*val = 555;
//Javaだと,参照先の値そのものを変更することはできない.
//Javaでは, 参照先の値やオブジェクトにアクセスすることができる.
//ここの例で行くと,Javaでは,*valにアクセスはできるが,
//*valに代入することはできないイメージ.
}
int main(void){
int a = 10;
int* a_p = &a;
printf("a=%d, pointer of a=%d\n",a,&a);
printf("a_p=%d, pointer of a_p=%d\n",a_p,&a_p);
changeValueCallbyRef(a);
printf("a=%d, pointer of a=%d\n",a,&a);
changeValuePointer0(&a);
printf("a=%d, pointer of a=%d\n",a,&a);
changeValuePointer1(&a);
printf("a=%d, pointer of a=%d\n",a,&a);
}
- https://www.google.co.jp/ ×148
- https://www.google.com/ ×6
- https://www.google.co.jp/ ×6
- https://www.google.com.au/ ×1
- http://search.yahoo.co.jp/ ×1
- http://search.babylon.com/web/javascript 間接参照?babs... ×1
- https://www.bing.com/ ×1
- https://www.google.com/m/search ×1
- 直接参照 間接参照 ×11 / ポインタ 直接参照 ×7 / java 直接参照 ×5 / 直接参照 ×4 / java 間接参照 ×2 / java 間接参照とは ×2 / ポインタ 直接 間接 ×2 / 直接ポインタ 間接参照 ×2 / ポインタ&間接参照 ×2 / MySQL ポインタ参照 ×2 / 間接渡し ×2 / 直接参照ポインタ ×2 / 引数として与えられたポインタpの間接参照先の値をn倍する ×1 / JavaScript ポインタ渡し ×1 / JavaScript 引数 値渡し 間接 ×1 / java 関節参照 ×1 / uwsc "間接参照" ×1 / ポインタ渡し UWSC ×1 / bat 間接参照 ×1 / 値渡し 参照渡し ポインタ ×1 / C言語 直接参照 間接参照 ×1 / PDF 直接参照 間接参照 ×1 / 直接間接参照ポインタ ×1 / ポインタ 直接 関節 ×1 / 間接参照 java ×1 / 間接参照とは ×1 / C言語 直接参照と関節参照 ×1 / ポインタ 直接参照 間接参照 ×1 / 間接参照 ×1 / ポインタ 間接参照 ×1 / javascript 関節参照 ×1 / C 間接参照 直接参照 ×1 / javascript 参照の値渡し ×1 / java 参照渡し 値渡し ×1 / java 参照とは ×1 / javascript 値渡し 参照渡し ×1 / 参照される 直接 java ×1 / java 間接参照 できない ×1 / 直接参照 関節参照 ×1 / 直接参照と間接参照 ×1 / bat ant 値の受け渡し ×1 / ポインタ直接間接参照 ×1 / ftp -n $ 値渡し ×1 / ポインタ 参照 直接 間接 ×1 / python 参照の値渡し ×1 / 値渡し アドレス渡し Xming ×1 / javascript 関数 渡し 間接 直接 ×1 / javascript ポインタ渡し ×1 / .htaccess 値渡し ×1 / Java 間接参照出来ない ×1 / 間接参照と ×1 / 間接参照 直接参照 ×1