검색해도 뭔소린지모르겠고 이해하기가힘드네.. 알려줄분 ㅜ
1. 배열이름은 일반 변수와는 달리 독특한 성질이 있다. 배열이름에 직접 어떤 자룟값을 기억시킬수 있는가?
만일 아니라면 어떻게 해야 하는가?
2.함수 호출과 포인터는 어떤 관계가 있는가?
3. 1970년대 초반 어셈블리어를 주로 사용할 당시 기업에서 사용하던 메인프레임급 컴퓨터의 주 기억용량이 100kb를 넘지않았다.
따라서 기억 용량을 최소로 사용하는 레지스터를 이용한 명령어를 주로 사용하였으며 또한 주소를 직접 이용하는 경우도 많았다.
과거의 이러한 경우와 오늘날 c언어에서 사용하는 포인터와의 관계를 설명하라
그러고보니 함수 이름을 포인터에 저장하는 개념은 왜 쓰는 거지?
클로저 개념도 아닌 거 같은데
1.메모리 주소나 포인터같은건 바로 대입가능하고 int나 char같은거 대입하려면(물론 형은 같아야되는데) (*ptr) = a 이런 식으로 대입 가능
함수 이름 자체도 함수 포인터라고 해서 포인터인데 관용적으로 함수 이름으로 호출함
메모리 주소로 직접 접근가능한게 c언어의 포인터고 그래서 c언어를 중급 언어라고도 하지
대충 설명해봤음
진짜 고마워여 .. 2번이랑 3번 좀더 부가설명 해줄수있을까요?? 과제에 써서 제출해야하는데 어떻게 써야할지 감이안와서. . ㅜ
아니다 2번만 부가설명 해주면 진짜 고맙겠음 3번은 좀더 찾으니까 알겠고
원래 함수 호출할 때 관용적으로 함수 이름써서 int add(int a,int b) 라고 하면 add(1,2) 이런식으로 호출하는데 원래는 함수 이름도 포인터라서 (*add)(1,2) 이런 식으로 호출해야됨 근데 이렇게 하는게 번거롭고해서 컴파일러 측에서 함수 이름으로 호출할 수 있도록 만들어놓은거
저 2번 문제는 그거 말 하는거 아닌가요 call by value call by reference를 물어보는거 아닌가요.. 왜 함수에서 값 호출할때 포인터 쓰는지.. 1번같은 경우에는 배열의 이름에는 시작주소가 담겨져 있어요. 그래서 배열이름이 arr 이면 arr+1은 arr[1]과 마찬가지가 되는거죠. arr[0] == arr+0인거구요, 배열이랑 포인터는 밀접한 관계가 있어서 열심히 공부하셔야 해요