게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C에서 어떻게 이중포인터를 이차원배열처럼 생성할수 있나요??
게시물ID : programmer_8704짧은주소 복사하기
작성자 : 창천을꿈꾸며
추천 : 0
조회수 : 424회
댓글수 : 5개
등록시간 : 2015/03/18 11:05:12
옵션
  • 본인삭제금지
포인터를 사용해서 일차원배열을 참조하고 하는것은 이해가 되는데요..

#include<stdio.h>

int main()
{
int i, j;
int arr[2][4] = { 1, 2, 3, 4, 5, 6, 7, 8 };
printf("%d %d %d\n", arr,arr[0],arr[1]);
int(*who_b)[4] = arr;
for (i = 0; i<2; i++)
{
for (j = 0; j<4; j++)
{
printf("%d ", who_b[i][j]);
}
printf("\n");
}
return 0;
}

요로코롬  who_b포인터를 사용하는것은 이해가 잘 안되네요.. ㅠㅠㅠㅠ 

arr은 arr[0]의 주솟값을 가지고 있던데.. 어떻게 저 포인터[4]에 넣으면 

다 할당이 되는건가요..?

그리고

#include<stdio.h>

int main()
{
int i, j;
int num[3]={1,2,3};
int *p;
p = num;

printf("%d\n", p[2]);
return 0;
}

이걸 실행시키면 num[2]인 3이 나오던데..
포인터가 담고있는 주솟값이 가리키는 메모리에 저장된 값을 출력하려면
앞에 '*'를 붙여야 되는것이 아닌가요? ㅠㅠ 그런데 왜 쟤는.. 능청스럽게 p[2]하면 num[2]가 출력되는지도 잘 모르겠어요..
p[2]가 p+2를 또 뜻하는건가요?? 흐아.. 
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호