void word(char *str) { scanf("%s", str); } void main() { char str[10]; word(str); printf("%s\n", str); }
프로그램 실행화면
C언어를 배울 때 가장 이해하기 어려운 것이 포인터가 아닌가 싶다. 사실 프로그래밍을 하다보면 포인터를 잘 사용하지 않는 경우가 더 많다.
프로그램의 표현방식은 많고 포인터를 사용하지 않고도 구현할 수 있는 방법은 많다. 하지만 포인터를 써야하는 경우가 있다. 내 생각이지만 그 경우는 매개변수로 배열을 보낼 때 필요하다고 생각된다. 다른 경우에는 쓰지 않는 것이 더 좋다고 생각된다.
위에 있는 프로그램도 단순히 main()함수의 지역변수로 선언한 str[]배열을 word()함수에 매개변수로 보내 문자열을 입력 받아 와서 출력해 주는 아주 간단한 프로그램이다.
포인터의 포인터니 어려운 소리는 잊어 버리고 1차원 배열을 매개변수로 넘겨줄 때는 *한개, 2차원 배열일 때에는 *를 2개 즉 **str해주면 되는 것이다. 그리고 사용할 때는 배열처럼 사용하면 된다.