Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[5725] Re:Re:고맙습니다. 즐거운 하루 되세요.
0x000 [djdu1018] 1774 읽음    2006-06-13 20:10
GongZza 님이 쓰신 글 :
: 저도 엄청 초짜 입니다.
:
: 문제 풀이 형식으로 답변 드릴게요 ^^;;
:
: 밑에 님이 에러 링크 걸어놓으신대에 제가 예전에 답변 으로 갑사하다는게 보여서 순간 움찔?; 햇다는 =_=;;;
:
: 일단 int 를 2 byte로 취급하거나 4byte로 취급 할수도 있다는건 아시겟죠?
:
: 그래서 코드를 보시면 대부분 n=sizeof(list)/sizeof(int);로 해서 배열 갯수를 얻곤 합니다.
:
: b=a 하시고 b를 출력 하시기 위해서는
:
: 처음에 b는 포인터 아니겟습니까? 거기서 먼저
:
: 2차원 배열을 참조하는 포인터이기 떄문에
:
: 2차원 포인터 ** 을 사용 하면 답이 나옵니다.
:
: *(*(b+i)+j) == a[i][j] 랑 같은 거죠.
:
: 즉 * 을 한개만 붙이면 주소를 가리키게 되기 떄문에
:
: %d를 해도 주소가 나온단 이말이죠.
:
: 그 주소에서 *를 한번더 참조하면 원 데이터가 있는 곳을 참조 하게 됩니다.
:
:
: 저도 정말 초짜인데 제 짧은 지식으로나마 조그만한 도음이 되었으면 기쁘겟습니다.
:
: 짧은 이견이지만..
:
: 어셈플리를 공부하신다고 하셔서 나쁜짓은 아니잖아요?ㅎ
:
: 열심히 하셔서 멋진 프로그램 하나 작성 해보시는 것도 경험 아닐까 생각 합니다.
:
: 저는 고등학교때 어셈플리어로 화면에 무름표 색깔별로 찍엇어요 =_=;;;
:
: 좌표 노가다신공으로 ;;; ㅎㅎ ^^;; 화이팅 입니다.
:
: 0x000 님이 쓰신 글 :
: : 제가 요즘 들어 어셈블리를 배우면서
: : "아.. 지금 내가 배우는 이 것이 과연 미래에 도움이 될까?"
: : 하는 생각을 하게 되었습니다.
: : 제가 현재 어셈블리에 지름신 강림하듯 투자했습니다.(한꺼번에 산 건 아닌데 너무 비싸..)
: : 심지어 영문서적까지 사버렸습니다.(다행인건 어느정도 알아듣는다는 것)
: : 그래서 더 걱정됩니다. -_-;;
: :
: : 용기를 북돋아달라는 것은 아닙니다.
: : 제가 지금 하는 이 짓(?)이 과연 올바른 행동인지, 과연 미래에 도움이 될지
: : 그것만 자세히좀 알려주시면 감사하겠습니다.
: :
: : 아 그리고 간단한 질문..
: :
: : int a[3][2]={{1,2},{10,20},{100,200}}
: : int (*b)[2];
: : b=a;
: :
: : 대략 이런 설정이 되어있고
: :
: : printf("%#010x %#010x \n", )
: : printf("%#010x %#010x \n", )
: : printf("%#010x %#010x \n", )
: :
: : 대략 이런 걸 출력했더니 책에서의 결과는
: :
: : 0x8047d10 0x8047d10
: : 0x8047d18 0x8047d14
: : 0x8047d20 0x8047d18
: :
: : 그러나 우리집에서의 결과는
: : 0x0000ffd0 0x0000ffd0
: : 0x0000ffd4 0x0000ffd2
: : 0x0000ffd8 0x0000ffd4
: :
: : 이렇게 나왔습니다.
: : 저는 당연히 서로의 주소의 차이가 같을거라 생각했는데
: : 책에서는 4, 8정도 차이가 났고 우리집에서는 2, 4정도 차이가 나더군요.
: : "별로 상관 없겠지"라고 생각했는데 은근히 궁금한 게.. -_-
: :
: : 아 그리고
: :
: : int a[3][2]={{1,2},{10,20},{100,200}}
: : int (*b)[2];
: : b=a;
: :
: : 아까랑 같이 이런 설정이 되어있을 때
: : b, b+1, b+2의 결과를 볼 순 없을까요?
: : printf("%d\n", b+1); 했는데 이상한 결과가 나오네요.
: : &도 붙여보고 *도 붙여보고 별 짓을 다 해봐도 안 나오더군요.
: :
: : 쓰여진 프로그램은 Turbo C 2.01입니다.
: :
: : 쓰다 보니 배보다 배꼽이 더 커버렸네요.

+ -

관련 글 리스트
5719 제 고민좀 -_- 0x000 1693 2006/06/12
5721     Re:제 고민좀 -_- GongZza 1757 2006/06/13
5725         Re:Re:고맙습니다. 즐거운 하루 되세요. 0x000 1774 2006/06/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.