Schemeをつくろう(11) 実験中
ポインタ渡し、値渡し、ポインタ渡し、値渡し・・・。
#include <stdio.h> void frame_b(int *env) { *env = 30; } void child(int env) { printf("child : before : %d\n", env); frame_b(&env); printf("child : after : %d\n", env); } void frame_a(int *env) { *env = 20; child(*env); } int main(void) { int env = 10; printf("main : before : %d\n", env); frame_a(&env); printf("main : after : %d\n", env); return 0; }
フレームは親を変更することが出来る。子供は頑張ってみても親を変更することが出来ない。
main : before : 10 child : before : 20 child : after : 30 main : after : 20
いい感じだ。壁が出来た。
さて、うまくいくかな・・・。