디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

오어어ㅗ오오 백수 1년차님 정말 감사

에라(118.218) 2009.07.18 22:55:48
조회 53 추천 0 댓글 2

그냥 아는만큼만 끄적여볼께..

 int a[3][2] = {
  {1, 3},
  {10, 4},
  {5, 6}
 };
  //////////////////////////////////////////////////////////////////////////
 printf("a : %d \\n", a);     // 배열의 시작주소
 printf("a+1 : %d \\n", a+1);    // 세로로 이동하니 정상적인 8byte
 printf("a+2 : %d \\n", a+2);
 printf("a[0] : %d \\n", a[0]);
 printf("a[1] : %d \\n", a[1]);
 printf("a[2] : %d \\n", a[2]);   // 정상적인 8byte
 printf("--------------------------\\n");
 //////////////////////////////////////////////////////////////////////////
여기에서 a는 2차원 배열의 이름이지...배열의 이름은 배열 첫번째 시작주소값을 가지고있다는건 알거야...
하지만 여기서 중요한건.. 그 참조 범위가 어디까지인가가 중요해...
(한마디로 주소값을 가지고 연산을하면 (예 : 주소값 + 1)하면 그 주소값의 타입크기만큼 증가하는거야.
예를 들어보면 int *a = &b라고있다고 치자... a는 b라는 어떤 인트형변수의 주소값을 담고있겠지...(인트는 4바이트라는 가정하에...)
여기서 a + 1을 하면 얼마나 증가할까? 주소연산이기때문에 인트형 크기만큼 증가할꺼야 만약 a의값이 100이라면 a + 1은 104가 되겠지.

그럼 다시 위로 돌아가보면... a[3][2]의 a는 어떤 타입을 가질까? 그냥 일반 인트형??? 물론 1차원 배열일경우는 일반 인트형처럼 되지만
다차원으로 가면 달라져..
배열 구조를 보면 a[0]번째는 총 8바이트를 가지고있어(a[0][0], a[0][1]) 각 인트요소마다 2개의 인트형변수를 가지고있으니까..
한마디로 a의 타입이라고 하긴 뭐하지만 증가연산시크기(8바이트)만큼 증가한다는거야..
a[3][2]의 배열은 a[3]인 배열인데 각 요소의 크기는 8바이트이고 그 요소들은 2개로 쪼개져있다 라고 해석할수도있지.

그래서 a+1은  8바이트증가. a+2는 8+8 = 16증가가 되겠지.

 ////////////////////////////////////////////////////////////////////////// 
 printf("&a : %d \\n", &a);    // 배열의 시작주소는 언제나 똑같군
 printf("&a+1 : %d \\n", &a+1);   // 엄청난 주소 뻥튀기 왜이러지..
 printf("&a+2 : %d \\n", &a+2);   // 24byte나 차이가 나네..
 printf("--------------------------\\n"); // 어떤 이유이지?
  ////////////////////////////////////////////////////////////////////////// 
이 경우는 나도 좀 애매해
아마 생각에는 a는 어떻게 보면 하나의 변수자나...근데 그 변수의 크기가 3 * 2배열이라는거지 즉...3*2*4(byte)해서 총 24바이트라는거야..
그럼 위에처럼 생각해보면 &a를 주소연산 해보면 a의 크기만큼 증가가 되겠지?
&a+1을 하면 a의 크기인 24바이트만큼 증가한다는걸 알수있어 
&a+2면 42바이트겠지?

 ////////////////////////////////////////////////////////////////////////// 
 printf("*a : %d \\n", *a);          // 시작주소는 언제나 똑같군  
 printf("*a+2 : %d \\n", *a+2);           // 음 4byte로 줄어들었네..
 printf("*a+1 : %d \\n", *a+1);   // 어떤 이유이지?
 printf("--------------------------\\n");
  ////////////////////////////////////////////////////////////////////////// 
이번 경우는 *a인데...이거는 a가 가르키는 곳을 따라가라 인데...
*a를 한번따라가면 또 주소값이 나온다는거야..하지만 이경우는 다른데 *a는 다시말해서 *(a+0)으로 표현할수있지
즉 *a == *(a+0) == a[0]으로 된다이거지... 그럼 위에 소스를 좀 바꿔보면
a[0] + 2라는거야... 자 여기서 a[0]은 요소를 2개가지고있는 배열의 시작주소이지..
a[0]+2는 한마디로 &a[0][1]이 되는거여.....a[0]으로부터 +2만큼 주소연산을 하라는거니까...

a[0][1](+1), a[1][0](+2) - 이거는 요소가 오버되서 다음 요소로 넘어간거..-가 되지.
즉....&a[0][1]의 값은 a[0](*a)의 값보다 8바이트 증가한 값이겠지..
////////////////////////////////////////////////////////////////////////// 
 printf("**a : %d \\n", **a);             // 엥 한번더 참조하니깐 값이 나오네 값 1
 printf("**a+1 : %d \\n", **a+1);         // 값  2
 printf("**a+2 : %d \\n", **a+2);         // 값  3  왜 1 2 3을 출력할까? ㅠ
 printf("--------------------------\\n"); // 어떤 이유이지?
////////////////////////////////////////////////////////////////////////// 
이번 꺼는 참 단순한건데 **a는 *(*(a+0)+0)으로 해석이 가능하지...즉 a[0][0]이야....
그냥 a[0][0]의 값을 출력하겠지..(주소값이 아님)
그래서 1이나오고 1에다 +1 하면 당연히 2가나오고 +2하면 3이나오겠지?

////////////////////////////////////////////////////////////////////////// 
 printf("**a : %d \\n", **a);             // 괄호를 하면 값 재대로 나오네..  1      
 printf("**(a+1) : %d \\n", **(a+1));     // 값 재대로 나오네.. 10
 printf("**(a+2) : %d \\n", **(a+2));     // 값 재대로 나오네.. 5
 printf("--------------------------\\n"); // 어떤 이유이지?
 ////////////////////////////////////////////////////////////////////////// 
이거는 해석하는건데...**(a+1)을 순차적으로 해석해보자...
*(a+1)일단 이거부터 해석하면 a[1]이고 즉 *a[1]이 되겟지? 이걸 또 풀이해보면 *(a[1] + 0)이 되지..즉 a[1][0]번째 요소를 출력하라 이거임..
자 그럼 밑에꺼도 똑같은 방법으로 해보면 **(a+2)는 a[2][0]번째 요소 출력이되겠지?

 //////////////////////////////////////////////////////////////////////////  
 printf("*a[0] : %d \\n", *a[0]);   // 시작주소는 언제나 똑같군
 printf("*a[1] : %d \\n", *a[1]);         // 왜 이렇게 하면 값이 출력 될까?
 printf("*a[2] : %d \\n", *a[2]);         // 어떤 이유이지?
  ////////////////////////////////////////////////////////////////////////// 
이거는 말안해도 위에껄 참조하면 알꺼야...
}

나도 이게 맞는지는 몰라 ..그냥 내 추측인데...이 추측으로 인해 잘못된 정보가 전달될까봐 많이 걱정된다..

아무튼...내가 이해하는대로 적어봤어...

내가 설명을 잘 못해서....주절주절 두서가없어....아마 쉬운것도 이해하기 난해하게 적어놔서...도움이 될지는 모르겠다..

ps.만약 틀리다면 태클을 달아주세요~ 저도 올바른 지식을 쌓기위해 이렇게 끄적여봅니다.





-------------------------------------------------------------------------------------------------------
이제 발견함 차례차례 잘 볼깨요 감사함니다 ㅋㅋ

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 비난 여론에도 뻔뻔하게 잘 살 것 같은 스타는? 운영자 24/06/03 - -
공지 프로그래밍 갤러리 이용 안내 [71] 운영자 20.09.28 35368 62
2709696 19 ) 섹카오톸 레전드jpg ㅇㅇ(116.122) 23:41 0 0
2709695 Complete [1] 도리스아(119.195) 23:39 3 0
2709694 과나-벌레들이 사는 세상 발명도둑잡기갤로그로 이동합니다. 23:36 3 0
2709693 나님 개인앱 액티브 유저수 근황 ㅇㅅㅇ [5] AppHiki갤로그로 이동합니다. 23:36 17 0
2709692 슬슬 잠 온당.. [1] ♥냥덩수면과학연구소♥갤로그로 이동합니다. 23:34 6 0
2709690 사이드 플젝에선 디자이너가 귀족이다 [9] 노력갤로그로 이동합니다. 23:32 33 0
2709689 나님 음악천재✨ [1] ♥냥덩수면과학연구소♥갤로그로 이동합니다. 23:31 6 0
2709688 뺐으 보국전자직원이 전화로 청소하려면 다 분해야 한다고 도리스아(119.195) 23:31 5 0
2709687 그래도 똘이장군보다는 도리스아가 백 배는 착하다 발명도둑잡기갤로그로 이동합니다. 23:28 6 0
2709686 오늘의 발명 실마리: 디씨인싸이드 보이스 녹음 기능 다운로더 발명도둑잡기갤로그로 이동합니다. 23:25 6 0
2709685 이거 도리랑 비슷하지? [2] 멍청한유라ㅋ갤로그로 이동합니다. 23:24 16 0
2709684 하루종일게임했다노 [8] 노력갤로그로 이동합니다. 23:22 18 0
2709682 도리스아 너무 안타까운 게 [3] 발명도둑잡기갤로그로 이동합니다. 23:20 16 0
2709681 어플설치 완료 [6] 멍청한유라ㅋ갤로그로 이동합니다. 23:19 20 0
2709680 . [1/1] ♥냥덩수면과학연구소♥갤로그로 이동합니다. 23:19 13 0
2709679 프붕이 선풍기 모터분해중 [1] 도리스아(119.195) 23:18 12 0
2709677 고민)머리가 특출난거도아니고 adhd있어서 집중력 약한데.. [1] 프갤러(125.141) 23:15 16 0
2709675 이직할 때 들었던 욕 ㅇㅅㅇ [10] AppHiki갤로그로 이동합니다. 23:13 50 1
2709674 나님이 만든 알고리즘으로 프갤 사용자들 이미지를 단어로 요약해냄 ♥냥덩수면과학연구소♥갤로그로 이동합니다. 23:13 12 0
2709673 미니멀리스트의 캘린더 [4] 이시꾸갤로그로 이동합니다. 23:12 25 0
2709672 노무현 때 검찰이 김대중 대북 송금을 수사했던 것에 대해 도올이 비판했음 발명도둑잡기갤로그로 이동합니다. 23:12 13 0
2709669 qr코드로 출석관리하는 시스템 만들어본사람 있음? [8] 프갤러(183.98) 22:54 48 1
2709668 주말에 코딩하면 뭐하냐 ㅇㅇ? [2] 포항의봄갤로그로 이동합니다. 22:54 25 0
2709667 외계인한테 납치당하구 싶당 [1] ♥냥덩수면과학연구소♥갤로그로 이동합니다. 22:50 14 0
2709665 93-95년생들아 중딩때 여자애들한테 제일 인기 남돌 누구였음? [3] (127.21)갤로그로 이동합니다. 22:45 19 0
2709664 프갤 친구들을 위한 노래 [1] 프갤러(118.235) 22:44 18 0
2709661 멍유 ㅅㅂ 여친이랑 주멀마다 놀러다니고 [1] linux갤로그로 이동합니다. 22:40 20 0
2709659 나님 팬티만 입고 누은 사진 공개.. 가슴은 가렸어.. ♥냥덩수면과학연구소♥갤로그로 이동합니다. 22:39 17 0
2709657 이런 ㅆㅂ 너희는 이 노래나 들어라 발명도둑잡기갤로그로 이동합니다. 22:33 13 0
2709656 나님 막담즁..✨ ♥냥덩수면과학연구소♥갤로그로 이동합니다. 22:32 10 0
2709655 이분.. 사실 게이헌터일지도 몰라.. ♥냥덩수면과학연구소♥갤로그로 이동합니다. 22:31 12 0
2709653 사람들이 놀러가는거 보니 [3] 멍청한유라ㅋ갤로그로 이동합니다. 22:30 32 0
2709652 몇 달 전에는 내가 흑인 음악이 저항음악이라고 칭찬하는 글 [1] 발명도둑잡기갤로그로 이동합니다. 22:28 10 0
2709651 팬티만 입으니까 춥당 옷 입구 자야지 ♥냥덩수면과학연구소♥갤로그로 이동합니다. 22:27 8 0
2709649 애널의 수면영상✨ ♥냥덩수면과학연구소♥갤로그로 이동합니다. 22:23 24 0
2709647 야 너희 결혼 안함? [2] 포항의봄갤로그로 이동합니다. 22:20 28 0
2709645 6.9mm 소추류류를 보고 화가난 여자아이 ♥냥덩수면과학연구소♥갤로그로 이동합니다. 22:14 24 0
2709644 집에가는길 [4] 멍청한유라ㅋ갤로그로 이동합니다. 22:09 28 0
2709643 게이어플 쓰는 국회의원이 있다?? ㄷㅅㄷ ♥냥덩수면과학연구소♥갤로그로 이동합니다. 22:09 17 0
2709642 나는 쉬러간다 잘 있어 ㅇㅅㅇ [8] 나트륨찡갤로그로 이동합니다. 22:07 30 0
2709641 전자정부프레임워크라는게 우리가 아는 지자체 사이트들도 저걸로 만들어진거? [3] 프갤러(118.129) 22:02 33 0
2709640 구라안치고 개발자 면접 몇번 가봤는데 죄다 정장임 [3] 프갤러(112.150) 22:02 60 1
2709639 요즘 생활 루틴 ㅇㅅㅇ [8] AppHiki갤로그로 이동합니다. 21:59 61 0
2709638 나님은 초고도 천재 대마왕임 ㅇㅅㅇㅋ [2] 나트륨찡갤로그로 이동합니다. 21:59 10 0
2709637 방금 5호선 탔는데 rain이란 모자 쓴 엄청 예쁜 백인이 [13] 발명도둑잡기갤로그로 이동합니다. 21:55 65 0
2709636 공유오피스 사무실에서 일하고 10명 20명 이런 회사 어떠냐 [2] 프갤러(112.150) 21:54 29 0
2709634 냥덩이를 만지면 벌어지는 일 ♥냥덩수면과학연구소♥갤로그로 이동합니다. 21:52 17 0
2709633 개발자할려면 iq 높아야함?? [2] 프갤러(125.141) 21:51 32 1
2709632 sqld 이거 필요한거 맞음?? [4] 프갤러(222.118) 21:50 44 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2