메모리 주소에 들어있는 값 HEX형태로 나타내기

#include <stdio.h>

int main()
{
  int iNum=0XABCDEF89;
  unsigned char * ucp= (unsigned char *)&iNum;
  int iCnt1;
  int iCnt2;
  
  for(iCnt2=0;20>iCnt2;++iCnt2)
  {
    printf("%08X\t", ucp); //주소값이 증가한다.
    for(iCnt1=0;16>iCnt1;iCnt1++)
    {
      printf("%02X ",*(ucp)); //32비트의 값을 나타낸다.
      ++ucp;//다음 비트의 값
    }
    printf("\n");//32비트를 나타내면 계행 해준다.
  }

  return 0;
}



printf 함수도 반환을 한다.
#include <stdio.h>

int main()
{
  int iNum1;
  int iNum2;

  iNum1 = printf("12345\n");     //Symbol 상수다.
  iNum2 = printf("I love my home\n");  //글자수에 따라서 iNum2에 대입
              

  printf("%d %d \n", iNum1 ,iNum2);  

  return 0;
}


부동소수점 저장 방식

6.25를 2진수로 만들면

0110의 정수부와 01의 소수부가 된다. 합쳐보자

110.01표현 할수있다.

부호비트에 음수면 1 양수면 0을 넣자.

1.1001 X 2^2은

110.01과 동일하다.









'C언어' 카테고리의 다른 글

20140324 지역변수 전역변수 & 배열  (0) 2014.03.24
20140321 함수(1)  (0) 2014.03.21
20140318 포인터의 이해  (0) 2014.03.18
20140317 break & continue & switch  (0) 2014.03.17
20140314 for 과 if else  (0) 2014.03.14
by 날라차숑 2014. 3. 20. 17:58


#include <stdio.h>

int main()
{
  int iNum = 0;
  int iCnt = 0;
  printf("%d\n", iNum);
  printf("%08X\n"&iNum); // X는16진수8은8자리 빈자리는 0으로채운다.
  printf("%p\n"&iNum);   // 08X 와 p는 같다. 
  printf("%08X\n"&iCnt); // &iCnt의 주소값
  *((int *)0x0012ff70) = 100;
  printf("%d\n", iNum);
  *((int *)0x0012ff74) = 200;
  printf("%d\n", iCnt);

  return 0;
}



 Data

 type

 address

 int

 iNum 

 1000

 int

 iCnt

 1004

*Symbol Tabel 이라 부름


*의 의미     1.곱셈

                2.주소(캐스팅)

3.값

                4.포인터 변수 선언


#include <stdio.h>

int main()
{
  int iNum = 0//iNum은 심볼명
//  &iNum = 100;
//  0x12FF74 = 100;
//  (int *)0x12FF74 = 100; //*는 캐스팅( *)할때도 쓰임. &주소를 알아내는 연산자
//  주소상수 = 정수상수
//  &iNum = 100;
//      * 1.곱셈 2항
//  * 2.주소(캐스팅) 단항
//      * 3.값(단항)
  *((int *)0x12ff74) = 100//3.번발동
  printf("%08X\n"&iNum);
  printf("%d\n", iNum);
  
  *(&iNum) = 1000//3.번발동
  iNum = 1000//윗줄과 같다.
  printf("%d\n", iNum);

  return 0;
// (int *)0x12ff74 와 &iNum 은 같다.



#include <stdio.h>

int main()
{
  int iNum = 0;
  int * iP = &iNum;      //iP는 iNum의 주소값을 가진다.
  
  printf("1. iNum : %d \n",iNum);      //iNum의 값.
  printf("2. iNum : %08X \n\n",&iNum);  //iNum의 주소값.
            //iNum은 두 가지로 표현할 수 있지만,
  printf("iP : %08X \n",iP);        //iP가 가리키는 주소값.
  printf("iP : %08X \n",&iP);        //iP의 주소값
  printf("iP : %d \n",*iP);        //iP가 가리키는 주소값이//가지고 있는 값.
            //iP로는 세 가지로 표현할 수 있다. 
            //가지고 있는 값.
            //iP로는 세 가지로 표현할 수 있다. 
  return 0;
}


'C언어' 카테고리의 다른 글

20140321 함수(1)  (0) 2014.03.21
20140320 포인터의 기초  (0) 2014.03.20
20140317 break & continue & switch  (0) 2014.03.17
20140314 for 과 if else  (0) 2014.03.14
20140313(2) IP확인하기  (0) 2014.03.13
by 날라차숑 2014. 3. 18. 17:34

break

#include <stdio.h>

int main()

{

  int iSum = 0;

  int iNum1 = 0;


  while(1)

  {

    iSum = iSum + iNum1;

    if(iSum>5000)

      break; //iSum이 5000이상이면 반복문을 탈출한다 

    iNum1++;

  }


  printf("iSum: %d \n", iSum);

  printf("iNum1: %d \n", iNum1);

  

  return 0;

}



continue
#include <stdio.h>

int main()
{
  int iNum;
  printf("start! ");

  for(iNum = 120>iNum; iNum++)
  {
    if(0==iNum%2 || 0==iNum%3)
      continue//이자리에서 반복영역을 다시실행한다.
    printf("%d ", iNum);//if가 참값이라면 이부분은 실행되지않음
  }
  printf("end! \n");

  return 0;
}



193page 예제1

#include <stdio.h>

int main()
{
  int i;
  int j;
  for(i=110>i; i++)
  {
    if(i%2!=0)
      continue; //1,3,5,7,9값은 아래로 내려가지 않는다.

    for(j=110>j; j++)
    {
      if(i<j)    //i값이 j값보다 같거나 더커지면 빠져나온다
        break;

      printf("%dX%d=%d \n", i ,j ,i*j);
    }
    printf("\n");
  }
  return 0;
}


193page 예제2

#include <stdio.h>

int main()
{
  int A;
  int Z;
  int iResult;
  for(A=010>A; A++)
  {
    for(Z=010>Z; Z++)
    {
      if(A==Z)
        continue;
      iResult=(A*10+Z)+(Z*10+A);
      if(iResult==99)
        printf("%d%d+%d%d=%d \n", A,Z,Z,A, iResult);
    }
  }

  return 0;
}



switch
#include <stdio.h>

int main()
{
  int iNum;
  
  printf("숫자를 입력하세요: ");
  scanf("%d"&iNum);

  switch(iNum)
  {
  case 1:
    printf("1을 입력하셨습니다.\n");
    break; //break문을 쓰지 않으면 아래의 문장이 모두 실행된다.  
  case 2:
    printf("2를 입력하셨습니다.\n");
    break;
  case 3:
    printf("3을 입력하셨습니다.\n");
    break;
  case 4:
    printf("4를 입력하셨습니다.\n");
    break;
  case 5:
    printf("5를 입력하셨습니다.\n");
    break;
  default:
    printf("입력이 잘못되었습니다.\n");
    
  }

  return 0;
}


'C언어' 카테고리의 다른 글

20140320 포인터의 기초  (0) 2014.03.20
20140318 포인터의 이해  (0) 2014.03.18
20140314 for 과 if else  (0) 2014.03.14
20140313(2) IP확인하기  (0) 2014.03.13
20140313 순서도 그리기 파워포인트 && while문 do while문 for문  (0) 2014.03.13
by 날라차숑 2014. 3. 17. 16:56