Multidimensional Arrays as Parameters: C/C++

image.png

Multidimensional Arrays as Parameters: Java

image.png

📌 C, C++, Java 모두 array나 Object를 보통 pass by reference로 부름

Pass Parameters that are Subprogram Names : C/C++

image.png

Pass Parameters that are Subprogram Names : Python

image.png

❓sub3() → sub4() → sub2() → print(x) 일때 뭘 출력할까?

⇒ x = 1이다. sub2기준의 더 큰 블럭으로 나가야함 ⇒ sub1()인데 여기서 정의된 x는 1이므로 1 출력 !

💡 binding 기준에 따라 또 출력값이 달라진다 !

  1. shallow binding ⇒ sub2가 실행된 환경이 sub4니까 ! x = 4출력
  2. deep binding ⇒ 변수가 outer scope를 확인하고 존재한다면 해당 값 출력 ! x = 1출력
  3. ad hoc binding ⇒ 함수를 인자로 넘긴 환경이 sub3이니까 ! x = 3출력