[過去ログ] 【まず1嫁】くだすれPython(超初心者用) その59 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
744
(1): デフォルトの名無しさん [] 2024/06/25(火) 13:28:25.30 ID:PJlEmYUO(3/7) AAS
>>741
741(3): デフォルトの名無しさん [sage] 2024/06/25(火) 09:35:15.76 ID:ZD6OkC9b(1) AAS
>>740
Pythonは(参照の)値渡し
>>737は間違いで>>739が正しい

def modify(x):
 x = None

x = [1, 2, 3]
modify(x)
print(x) #この結果をNoneにできるのが参照渡し
で、C言語だとこんな感じかと想像するが、
変数 xの値である 1 を渡すことを、値渡し、
変数 xのポインタである 0x7ffed3b1f5ac を渡すことを、参照渡しと呼んでいた。

$ cat x.c
#include <stdio.h>
void modify(int *xx, int *yy) {
 printf("xx %p %d\n", xx, *xx);
 printf("yy %p %d\n", yy, *yy);
 int new_xx = 0;
 xx = &new_xx; /* 代入により別オブジェクトを指すPython風 */
 *yy = 0; /* 変更結果が返される。 */
 printf("xx %p %d\n", xx, *xx);
 printf("yy %p %d\n", yy, *yy);
 return;
}
int main(void) {
 int x = 1;
 int y = 11;
 modify(&x, &y);
 printf("x %p %d\n", &x, x);
 printf("y %p %d\n", &y, y);
 return 0;
}
$ cc x.c && ./a.out
xx 0x7ffed3b1f5ac 1
yy 0x7ffed3b1f5a8 11
xx 0x7ffed3b1f58c 0
yy 0x7ffed3b1f5a8 0
x 0x7ffed3b1f5ac 1
y 0x7ffed3b1f5a8 0
746
(1): デフォルトの名無しさん [] 2024/06/25(火) 13:31:55.40 ID:ZtCD4zFU(3/5) AAS
>>744
>変数 xの値である 1 を渡すことを、値渡し、
>変数 xのポインタである 0x7ffed3b1f5ac を渡すことを、参照渡し

そんな事実は無い
「参照私」が出現したのはC++から
Cには値私とポインタ私しかない
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.469s*