p. 78
예제에서는 b=&a;
정수형 변수 a의 주소를 포인터 변수b 에 기억시킨다.
p. 81
p=a
배열명 a는 배열의 주소이므로 포인터 변수p에는 배열a의 시작 위치가 기억된다. 배열의 이름은 주소이므로 'p=&a'처럼 입력하지 않도록 주의해야 한다.
p. 95
예제5
pf=a
add함수의 시작 주소를 함수포인터 pf에 저장한다.
라고 되어있는데요.
&를 붙이고 안붙이고의 차이를 알고 싶습니다.
안녕하세요 길벗수험서 운영팀입니다.
우측 변에 나오는 변수명이 주소를 담고 있는 경우에만 &를 붙이지 않습니다.
만약 값을 지니고 있다면 &를 붙여야 하죠.
배열의 경우 배열'명'은 배열의 시작주소를 담고 있습니다.
a[5]라는 배열을 선언했다면, a는 배열의 시작주소인 &a[0]과 값이 같죠.
95쪽의 경우는 선언 부터 pf라는 변수가 함수를 담고 있는 포인터임을 알려주고 있습니다.(선언시 사용된 *기호)
행복한 하루되세요 :)
-
관리자2019-09-25 15:58:38
안녕하세요 길벗수험서 운영팀입니다.
우측 변에 나오는 변수명이 주소를 담고 있는 경우에만 &를 붙이지 않습니다.
만약 값을 지니고 있다면 &를 붙여야 하죠.
배열의 경우 배열'명'은 배열의 시작주소를 담고 있습니다.
a[5]라는 배열을 선언했다면, a는 배열의 시작주소인 &a[0]과 값이 같죠.
95쪽의 경우는 선언 부터 pf라는 변수가 함수를 담고 있는 포인터임을 알려주고 있습니다.(선언시 사용된 *기호)
행복한 하루되세요 :)
-
관리자2019-09-26 09:40:54
안녕하세요 길벗수험서 운영팀입니다.
배열의 배열명이 주소를 뜻하듯,
함수의 함수명 또한 함수의 로직(중괄호{} 내의 코드들)이 저장된 메모리의 주소를 가리키고 있습니다.
배열과 동일하게 보면 쉽게 이해할 수 있습니다.
int a[5] = {1,2,3,4,5};
int *b;
b=a;
int a(int i, int j) { ~~~ }
int (*b)(int, int);
b=a;
함수에서 다른 점은 함수의 포인터를 받으려는 변수(b)의 인수가 반드시 함수와 동일하게 정의되어야 한다는 점입니다. (변수명 없이 자료형과 개수가 동일하게)
행복한 하루되세요 :)
-
*2019-09-25 16:26:24
p. 95에서
*pf 는 함수포인트를 선언해주는 것이지
우측 변수명인 add가 주소를 담고 있다는 뜻이 아니지 않나요???
add앞에는 &가 왜 안 붙은거죠?