char * 에 대한 질문입니다.
글쓴이: amblance / 작성시간: 금, 2011/01/07 - 8:08오후
공부하다 모르는것이 있어서 질문드립니다.
char 포인터 변수인 addr의 값은 0x0804a040으로 나오는데요.
char 포인터가 4바이트로 메모리에 할당되니깐 이걸 1바이트씩 값을 구해보려 합니다.
0x08
0x04
0xa0
0x40
이런식으로요. 아무리 해봐도 모르겠습니다.
조언좀 부탁드립니다.
#include <stdio.h> char text[100] = “HELLO”; int main(void) { char *addr; addr = text; printf(“%p\n”, &addr); printf(“%p\n”, addr); printf(“text : %p\n”, &text); return 0; }
Forums:
혹시 이런걸 원하시는건가요?
#include
int _tmain(int argc, _TCHAR* argv[])
{
char text[100] = "HELLO";
char *addr;
addr = &text[0];
printf("%p\n", &addr);
printf("%p\n", addr);
printf("text : %p\n\n", &text);
printf("%p %p %c\n", &text[0], text[0], *(&text[0]));
printf("%p %p %c\n", &text[1], text[1], *(&text[1]));
printf("%p %p %c\n", &text[2], text[2], *(&text[2]));
printf("%p %p %c\n", &text[3], text[3], *(&text[3]));
printf("%p %p %c\n", &text[4], text[4], *(&text[4]));
printf("%p %p %c\n", &text[5], text[5], *(&text[5]));
printf("%p %p %c\n", &addr[0], addr[0], *(&addr[0]));
printf("%p %p %c\n", &addr[1], addr[1], *(&addr[1]));
printf("%p %p %c\n", &addr[2], addr[2], *(&addr[2]));
printf("%p %p %c\n", &addr[3], addr[3], *(&addr[3]));
printf("%p %p %c\n", &addr[4], addr[4], *(&addr[4]));
printf("%p %p %c\n", &addr[5], addr[5], *(&addr[5]));
return 0;
}
< 출력결과 > 0012FEF0 0012FEFC text : 0012FEFC
0012FEFC 00000048 H
0012FEFD 00000045 E
0012FEFE 0000004C L
0012FEFF 0000004C L
0012FF00 0000004F O
0012FF01 00000000
0012FEFC 00000048 H
0012FEFD 00000045 E
0012FEFE 0000004C L
0012FEFF 0000004C L
0012FF00 0000004F O
0012FF01 00000000
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기