playXP

서브 메뉴

Page. 1 / 12509 [내 메뉴에 추가]
글쓰기
작성자 아이콘 TwilighT_
작성일 2016-08-06 01:57:13 KST 조회 682
첨부
제목
상상이 안되서 간단한 포인터 질문합니다ㅜ
파일포켓 이미지

올해 2월에도 C언어 질문했는데..어김없이 방학이라 질문합니다ㅋㅋㅋㅋ

 

#include <stdio.h>

 

int main(){

  int arr[2][2][2]={1,2,3,4,5,6,7,8};

  printf("%d ",*(arr+1)[0][1]); // 나오는 값 7

  printf("%d ",(*(arr+1))[0][1]); // 나오는 값 6

}​ 

 

책에 있는 예제 중, 거의 쓰진 않지만 3차원 배열이 나왔는데

왜 밑의 두 프린트 값이 다른 지 궁금합니다.. 상상이 잘안되어서..

밑의 값이 맞는 답인데 어떻게하면 *(arr+1)[0][1]​ 이것이 arr[1][1][0]를 의미하는 것일까요...

지속적인 허위 신고시 신고자가 제재를 받을 수 있습니다.
신고 사유를 입력하십시오:

발도장 찍기
아이콘 어그로중독자 (2016-08-06 09:28:23 KST)
0↑ ↓0
센스 이미지
아무리봐도 도무지 모르겠으니 괄호를 누락하여 모호성을 만드는 일이 없도록 합시다
아이콘 개념의극한 (2016-08-06 09:32:00 KST)
0↑ ↓0
센스 이미지
배열을 선언하면 배열변수는 정적 포인터가 됩니다

여기서 3차원으로 선언했으니까

111
110
101
100
011
010
001
000

이렇게 메모리에 잡히는데

*arr 은 000이고 *arr+1 은 100, 그런데 위에는 *arr+1 이 아니라 *arr+1[0][1] 을 포인터주소로 잡았고
밑에는 포인터주소 *arr+1 의 [0][1] 엘러먼트를 잡았기 때문에 값이 다릅니다

자세하게 말하고 싶은데 지금 폰 고치러 가야해서 있다가
아이콘 CF_Crusader (2016-08-06 13:13:22 KST)
0↑ ↓0
센스 이미지
3차원 배열을 이진수처럼 썼다는 거만 알겠다
아이콘 TwilighT_ (2016-08-07 21:42:20 KST)
0↑ ↓0
센스 이미지
헷 지금 확인했네요ㅋㅋㅋ그냥 괄호를 잘쳐야겠군욬ㅋㅋㅋㅋㅋㅋㅋㅋ
댓글을 등록하려면 로그인 하셔야 합니다. 로그인 하시려면 [여기]를 클릭하십시오.
롤토체스 TFT - 롤체지지 LoLCHESS.GG
소환사의 협곡부터 칼바람, 우르프까지 - 포로지지 PORO.GG
배그 전적검색은 닥지지(DAK.GG)에서 가능합니다
  • (주)플레이엑스피
  • 대표: 윤석재
  • 사업자등록번호: 406-86-00726

© PlayXP Inc. All Rights Reserved.