저번 모임이 이루어지지 못하여서 우선 문제를 올려봅니다.

본격적인 진도를 나가기 앞서서 포인터 부분을 검사해봅시다.

너무 쉽다 싶으면 다음 문제로 넘어가주세요.

진도를 나가기 위해서 이 정도는 알아두셔야한다고 생각되는 간단한 문제들로 구성했습니다.

답안 작성은 이 곳으로 ... -> http://shiena.nazzim.net/bbs/zboard.php?id=algo


1. 다음 소스들을 작성하여 컴파일해보시고 이해하시는 지 확인하세요.

1)

#include "stdio.h"

void main()
{
  int *p, q;

  p = &q;

  printf("%d", *p);
}


2)

#include "stdio.h"

void main()
{
  float *p, q;

  p = &q;

  *p = 199.34;

  printf("%f", q);
}


2. 다음 소스는 무엇이 잘못되었는 지 찾아보세요. ( i 값을 8배 하려고 할 경우에 .. )

int *p, i;

p = &i;

p = p * 8;


3. for 반복문을 사용하여 0에서 9까지의 수를 화면에 출력하는 프로그램을 작성하세요.

이때, 포인터를 사용하여서 수들을 출력하세요.


4. 세 개의 문자형 포인터를 생성하여, 첫번째 포인터는 'one', 두번째 포인터는 'two'

세번째 포인터는 'three' 를 가리키도록 초기화하는 프로그램을 작성하세요.


5. 다음 소스에서 'this'의 'i'에 접근하는 방법 2가지를 선보이세요.

char *p, str[80] = "this is a test";

p = str


6. 다음 소스의 결과를 예상해보세요.

#include "stdio.h"

void main()
{
  int *p, q[2] = { 2, 4, 8 } ;

  p = q;

  printf("%d", *p++);

  printf("%d", ++(*p));
}


7. 다음 소스의 결과물이 6이 나오도록 포인터의 증감연산을 사용해서 ????을 채우세요.

#include "stdio.h"

void main()
{
  int *p, q[2] = { 3, 5, 8 } ;

  p = q;

  printf("%d", ?????);
}