본문 바로가기

보고서/10월 업무일지

10월 12일 업무일지


소수 구하는 프로그램

#include <stdio.h>

int main()
{
  int iTemp;
  int iHalf;
  int iCnt;
  printf("2\n");

  for(iTemp=350>=iTemp;iTemp+=2//홀수 출력
  {  
    
    iHalf=iTemp/2;
    iCnt=3;
    while(iCnt <= iHalf) //소수 검색
    {
      if(iTemp%iCnt ==0)
      {
        break;
      }  
      iCnt+=2;
      
    }
    if(iCnt < iHalf)
    {
      continue;  //위로 올라간다 for문 으로 간다(iTemp+=2)
    }
    printf("%d\n",iTemp);
  }
  
  return 0;
}



제 5 장 포인터의 개념과 텍스트 파일

5.1 변수의 값과 주소

//변수의 값과 주소를 출력하는 프로그램
#include <stdio.h>

int main()
{
  int x;
  x = 25;
  printf("the value of x: %d\n\n",x);  //변수 x의 값을 출력
    printf("the address of x: %p\n",&x);  //변수 x의 주소값 출력
  printf("the address of x: %u\n",&x); //주소값을  unsigned로 출력 
  printf("the address of x: %p\n",0x30); //주소값  0x30출력
  printf("the address of x: %p\n",48); //주소값 48의 16진수인 0x30 출력
  
  
  
  return 0;
}

모든 변수는 주소값을 가진다.
위에서 &x의 &은 주소연산자라고 한다.
%p 는 16진수 출력을 보기편하게 하기위해서 쓴 것으로 주소값 구하는곳에 반드시 %p가 필요하지는 않다.
리눅스, 윈도우는 주소값이 다르다.


Symbol table 작성
 자료형(Type)  이름(Name)  주소(Address)
 int  x  0xbffffa28


char 1바이트, short 2바이트, int 4바이트의 주소가 사용된다.

5.2 포인터 변수

우리가 쓰는 32비트 컴퓨터 메모리의 주소값의 MAX가 [FF][FF][FF][FF] 이므로 이 주소값을 나타내려면 4바이트
가 필요하다. 그러므로 포인터 변수의 크기는 4바이트가 된다.

int *ip; //포인터 변수의 선언
변수이름앞에 *을 붙여서 포인터 변수로 사용한다. *ip 의 자료형은 포인터 타입이며 포인터형 안에 인트, 플롯
캐릭터 등등 의 형이 오게된다.


#include <stdio.h>

int main()
{
  int x;
  int *xp; //xp는 int형의 포인터변수로 선언됨

  x=7;  //변수 x의 초기화
  xp=&x; // 변수 xp가 x의 주소값으로 초기화

  printf("address of x: %p\n",&x); //변수 x의 주소
  printf("value of x: %d\n",x); //변수 x의 값
  printf("address of xp: %p\n",&xp); //포인터변수 xp의 주소
  printf("value of xp: %p\n",xp); //포인터변수 xp의 값
  printf("value of *xp: %d\n",*xp); //xp가 가리키는 곳의 값

  return 0;
}

'보고서 > 10월 업무일지' 카테고리의 다른 글

10월 14일 업무일지  (0) 2010.10.14
10월 13일 업무일지  (0) 2010.10.13
10월 11일 업무일지  (0) 2010.10.11
10월 8일 업무일지  (0) 2010.10.08
10월 7일 업무일지  (0) 2010.10.07