포인트배열 질문..
아서
질문 제목 : 포인트배열 질문..질문 내용 :
제가 이해하는 부분 확인 및 추가질문이 있습니다.
소스코드는 아래와 같습니다.
#include stdio.h
#include string.h
int main (void)
{
const char *cFunction[] = {ON, OFF, 100, 75, 50, 25};
printf(%d\n, cFunction);
printf(%s\n, *cFunction);
printf(%d\n, cFunction[0]);
//printf(%d\n, *cFunction[0]);
}
이렇게 있습니다.
ON, OFF, 100, 75, 50, 25는 string입니다.
이 string들의 주소를 담을 수 있는 배열 char *cFunction이 있습니다.
1.printf문에서 배열의 이름은 주소값이고 &cFunction[0]와 일치합니다.
2.printf문에서 포인트배열의 이름의 *하면, 그 배열에 저장되어 있는 값을 참조합니다.
그렇게되면 cFunction[0]에 저장되어 있는 ON의 주소 값이 출력되겠지요..
3.printf문에서 2.print문에 주소값이 저장된지 확인합니다. 일치합니다.
4.printf문은 cFunction[0]의 주소값을 *하여 참조하면 ON이 출력되야하지않나요?
포맷지정자가 %d이다보니 79f라는 값이 출력됩니다.
그래서 포맷지정자를 %s로 하면 빌드상문제가 없어 cmd창이 열리나 비정상종료합니다...
제가 알고 있는 개념과 무엇이 잘못인지 조언좀 부탁드립니다.^^