Re: 63.11 질문있습니다
, 도장_ 관리자님이 작성함수의 매개변수로 배열이나 포인터로 전달되는 것은 주소를 값으로 전달하는 것입니다. 따라서 call by value가 맞습니다.
해당 주솟값의 위치에 접근해서 값을 읽어오거나 값을 쓸 수 있습니다. 함수를 호출하기 전에 배열이나 malloc으로 메모리 공간을 할당하고, 해당 배열이나 포인터를 인수로 전달하는 것입니다. 즉, 배열의 주소, 포인터의 주소를 값으로 복사해서 전달합니다. 함수 안에서는 주소의 위치에 접근해서 값을 읽거나 쓸 수 있습니다. 새로 변수가 생성되지는 않습니다.
UNIT 63.11은 주소로 전달된 위치에서 값을 읽어서 출력만 하는 함수를 작성하는 문제입니다. 새로운 변수가 생성되지는 않습니다.
배열이나 포인터를 인수로 전달된 경우에는 함수에서 값을 변경하면 함수 호출이 종료된 이후에도 변경된 값이 유지됩니다. 이는 해당 배열이나 포인터가 함수에서 생성된 것이 아니기 때문입니다.
main 함수에서 printFullName 함수를 호출했다면 main -> printFullName으로 생명 주기를 갖습니다. main 함수에서 선언한 변수나 배열, 포인터는 main 함수가 종료된 이후에 사라집니다.(포인터로 할당한 메모리 공간은 free 함수로 해제해야 합니다)