Multidimensional Arrays as Parameters: C/C++

Multidimensional Arrays as Parameters: Java

- Java는 배열의 row, col수를 descriptor를 통해서 알수 있다.
- 2차원 배열 같은 경우에 배열을 요소로 갖는 1차원 배열이 되어 활용된다.
📌 C, C++, Java 모두 array나 Object를 보통 pass by reference로 부름
Pass Parameters that are Subprogram Names : C/C++

Pass Parameters that are Subprogram Names : Python

❓sub3() → sub4() → sub2() → print(x) 일때 뭘 출력할까?
⇒ x = 1이다. sub2기준의 더 큰 블럭으로 나가야함 ⇒ sub1()인데 여기서 정의된 x는 1이므로 1 출력 !
💡 binding 기준에 따라 또 출력값이 달라진다 !
- shallow binding ⇒ sub2가 실행된 환경이 sub4니까 ! x = 4출력
- deep binding ⇒ 변수가 outer scope를 확인하고 존재한다면 해당 값 출력 ! x = 1출력
- ad hoc binding ⇒ 함수를 인자로 넘긴 환경이 sub3이니까 ! x = 3출력