윤성우 열혈 C 14장 간단 정리
포인터와 함수에 대한 이해
-
인자 전달의 기본 방식에 대해 설명하라
인자의 값은 매개변수에 복사되어 전달됨.
-
배열을 함수의 인자로 전달하는 방식에 대해 설명하라
배열을 함수의 매개변수로 할 수 없기 때문에 배열의 주소 값을 전달함. 출력형 함수이름 (자료형 *인자명) {} 형태로 받음
-
배열을 함수의 인자로 전달받는 함수의 또 다른 선언에 대해 설명하라
함수이름 (자료형 인자명[]) 형태로 받음. *와 같지 않은 이유는 *는 매모리 주소 값만 가질 수 있지만 [ ] 형태는 불가능하기 때문.
-
함수에 배열을 길이도 계산해서 함께 인자로 넣은 이유에 대해 설명하라
함수에서 배열의 길이를 구하려고 할 경우 배열의 이름을 가지고 하는 것이기 때문에 포인터 변수의 길이를 가져온 값은 함수의 길이가 아니기 때문
-
Call-by-value 에 대해 설명하라
인자의 값을 매개변수에 복사해서 넣는 방법. 인자와 변수가 분리됨
-
Call-by-reference 에 대해 설명하라
인자의 변수의 메모리 주소를 매개변수로넣는 방법. 인자와 변수가 분리되지 않음
-
Call-by-value 와 Call-by-reference 를 나누어놓은 이유에 대해 설명하라
값을 복사를 메모리 주소 복사로 혼동하지 않기 위해.
-
scanf 함수의 &에 대해 설명하라
변수의 메모리 주소의 값을 알아야 값을 채워넣을 수 있음. 배열은 배열의 이름 자체가 포인터이기 때문에 필요없음
-
포인터 변수를 대상으로 한 const 선언에 대해 설명하라
자료형 const 변수명 은 해당 메모리가 참조하고 있는 값 그 자체를 바꾸지 않겠다는 뜻. 변수명 const 변수명은 해당 메모리를 참조하고 있는 메모리 주소 값을 바꾸지 않겠다는 뜻(포인터 변수의 상수화). 두 개 다쓰면 메모리 주소값과 해당 값을 변경할 수 없음
-
const 선언이 갖는 의미에 대해 설명하라
값을 실수로 변경하는 것을 막아서 오류를 잡게 도와줌