본문 바로가기

C언어/강의

2010년 10월 21일 목요일 (포인터변수를 이용한 연산 & 주소값 연산)


포인터변수를 이용한 연산
#include <stdio.h>

int main()
{

  int i=3, *ip=&i;    // 포인터변수ip에 변수i의 주소값을 넣음
  printf("%d\n", *ip);  // 포인터변수ip가 가리키는 변수값 출력 (3)
  i=*ip+25;        // 변수i에 포인터변수ip가 가리키는 변수값+25를 함(3+25)
  printf("%d\n", i);    // 출력결과 28
  return 0;
}




주소 값의 연산
#include <stdio.h>

int main()
{

  short snum=5, *sp=&snum;
  float fnum=2.3f, *fp=&fnum;

  printf("sp volue : %p\n", sp);        // sp가 가리키는 변수의 주소값
  printf("sp plus volue : %p\n", ++sp); // sp가 가리키는 변수의 주소값 증가
  printf("fp volue : %p\n", fp);        // fp가 가리키는 변수의 주소값
  printf("fp plus volue : %p\n", ++fp); // fp가 가리키는 변수의 주소값 증가
  return 0;
}


_M#]


텍스트 화일
#include <stdio.h>

int main()
{

  int score;

  char name[10];    // 10문자로 구성된 배열 변수
  FILE *fpin, *fpout;  // 파일 포인터 변수의 선언

  fpin=fopen ("text.in""r");  // text.in 파일 읽기
  fpout=fopen ("text.out""w");  // test.out 파일 쓰기(없으면 만듬)

  while(!feof (fpin))  // 파일의 끝(end-of-file)이 아니면 0반환
  {
    fscanf (fpin, "%s %d", name, &score);  // 파일로부터 읽기
    printf("%s\t%d\n", name, score);    // 화면에 출력
    fprintf(fpout, "%s\t%d\n", name, score);// 파일에 기록
  }
  fclose (fpin);
  fclose (fpout);
  return 0;
}
text.in 파일을 메모장으로 미리만들어 내용을 적어줌.