#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