연습문제 5장

2010. 3. 23. 22:282010년/연습문제

1~3 번까지 각변수의 포인터변수로 출력하는값~
fnumber의 값을 아스키코드 출력이다.

#include<stdio.h>
int
 main()
{
  int inumber =25;
  float fnumber = 38.9;
  char ch  ='g';
  int * pinumber;
  float * pfnumber;
  char * pch;
  unsigned char * pasi;
  pinumber=&inumber;
  pfnumber=&fnumber;
  pch=&ch;

  pasi = (char *)&fnumber;
  
  printf("inumber of value : %d \n",inumber);
  printf("inumber of address : %X \n",&inumber);
  printf("fnumber of value : %3.1f \n",fnumber);
  printf("fnumber of address %X \n",&fnumber);
  printf("ch of value : %c\n",ch);
  printf("ch of address : %X\n",&ch);
  printf("pinumber pointer value %d: \n",*pinumber);
  printf("pfnumber pointer value %3.1f: \n",*pfnumber);
  printf("pch pointer value %c: \n",*pch);
  printf("[%02X],[%02X],[%02X],[%02X]\n",*(pasi),*(pasi+1),*(pasi+2),*(pasi+3));
  printf("%c\t%c\t%c\t%c\n",*(pasi),*(pasi+1),*(pasi+2),*(pasi+3));
  
  return 0;
}



결과값을 보면 다볼수있다. 그리고  마지막 fnumber값을 1바이트씩 보면  [9A][99][1B][42]이다 이걸 아스키로 나타내면 좀 이상하게 나온다. 그리고   소스 코드에서 가장중요한점은 unsigned char * pasi 
포인터char 자료형은 아무래도 1바이트씩이라서 값이 들어가기위해서는 양수를 넣기 위해서 unsigned 를 반드시  선언해야한다. ~



#include<stdio.h>
int
 main()
{
  int inumber;
  int *pinum;
  printf("inumber 넣을 변수  값을 입력하세요~ :");
  scanf("%d",&inumber);
  pinum = &inumber;
  printf("정답은 %d입니다\n",*(pinum)*2);
  return 0;
}

이문제는 포인터 변수를 입력해서  inumber를 2배로 만들어서 출력하는 프로그램이다.


#include<stdio.h>
int
 main()
{
  int  inum;
  float fnum;
  char cnum;
  int * ipnum;
  float * fpnum;
  char  * cpnum;
  
  inum=0x12345678;
  fnum=0x12345678;
  cnum='g';
  ipnum=&inum;
  fpnum=&fnum;
  cpnum=&cnum;

  printf("ipnum의 값의 공간 크기 %d\n",sizeof(*ipnum));
  printf("fpnum의 값의 공간 크기 %d\n",sizeof(*fpnum));
  printf("cpnum의 값의 공간 크기 %d\n",sizeof(*cpnum));
  printf("ipnum의 포인터공간 크기 %d\n",sizeof(ipnum));
  printf("fpnum의 포인터공간 크기 %d\n",sizeof(fpnum));
  printf("cpnum의 포인터공간 크기 %d\n",sizeof(cpnum));
  return 0;
}

포인터 변수의 저장 공간의 크기를 출력하는것이다.

알다시피  안의 값은 주소안의 값으로 char나 int float형에 따라  틀리다 하지만  포인터변수의 저장공간은 다똑같이  4바이트이다~

'2010년 > 연습문제' 카테고리의 다른 글

6장 연습문제 2번  (0) 2010.03.26
6장 연습문제 1번  (0) 2010.03.26
프로그램 소수(prime number)구하기  (0) 2010.03.19
구구단의 변형 for2번과 변수 2개만 사용하기~  (0) 2010.03.17
구구단 쓰레기  (0) 2010.03.17