10.16 2차원 배열 arr2d의 역참조 횟수가 이해가 잘 안됩니다.
570
작성한 질문수 3
arr2d[0][0]와 **arr2d가 같다고 말씀하시는 부분에서 의문이 들어 질문드립니다. arr2d 자체가 전에 강의에서 설명 하신것처럼 이중포인터가 아니라 그냥 2차원 배열이라 주소자체가 따로 저장되는게 아니라서 주소가 한단계 밖에 없는데 arr2d의 역참조(*)가 두번이나 될수 있는게 이해가 잘안되네요ㅠ 설명부탁드립니다!
답변 8
1
sizeof 와 pointer arithmetic 에서 차이가 있습니다.
한 번 시도해보셨으면 좋겠네요.
이전의 답변에서 error - > warning 수정했습니다. error는 c++에서만 나타나는군요.
1
아아 어느정도 이해가 됬습니다 감사합니다!! 하나만 더 물어보자면,
배열 arr[4] 자체에서, arr과 &arr 의 구조적인 차이가 있나요? 둘다 포인터값을 출력해보면 값은 똑같은데,
arr의 주소값인 &arr 과는 차이가 있어야 될거 같은데 arr자체가 배열의 첫번재 주소이니, 이것의 주소를 또 다시 찾는다는게 이해가 안되는거 같습니다... 그냥 문법적인 또 다른 표현인지 아니면 구조적으로 차이가 있는지 궁금하네요...
1
arr2d는 이중포인터는 아니지만... 한 번만 dereferencing 이 가능하다 라는 말은 틀립니다. 이중포인터라기 보다는 arr2d[i][j] 일 때 arr2d는 (*ptr)[j] 입니다. 함수의 parameter로 넘겨줄 때 이중포인터로 넘기면 warning이 나오고, 배열에 대한 포인터로 넘겨줘야 된다는 점을 볼 때 이 부분을 알 수 있습니다.
일반 변수를 가리키는 포인터에 대해서
int a = 0;
int ptr = &a; 의 경우에
*ptr 이면 변수 a와 같은 것처럼
int arr[4];
int (*pa)[4]=&arr; 이면
*pa 일 때 arr 입니다.
여기서 arr의 원소에 접근하려면 dereferencing을 한 번 더 해주어야겠죠.
때문에 pa[0][0]; 이런 식으로 접근해줘야합니다.
0
강의중에 이차원 배열의 제목 arr2d는 이중포인터가 아니라고 하셔서요.. 한번만 dereferencing 이 가능한 경우에는 ** 두개 쓰이는 거 자체가 오류가 되어야 하는게 아닌가 하는 생각이 듭니다...
예를들어 2차원 배열 arr2d를 역참조를 한번만 하고 나면(arr2d는 이중포인터가 아니라 2차원 배열의 제목일 뿐이니까요..) 바로 이차원 배열의 첫번째 주소를 역참조(*) 하게 되니 arr2d[0][0]의 데이터가 나오고, 이걸 다시 역참조(*) 할 경우 데이터를 다시 역참조를 하게 되는 거니 이상한 데이터 값이 나와야 되는거 아닌가요?
0
아아 10.14 강의내요 죄송합니다. 마찬가지로 pa도 포인터가 1단계 밖에 없는데(4byte로 찍힘) 이후 강의에 보시면 **pa라는 표현도 나오는데, 애초에 포인터가 1단계 뿐인데 역참조가 2번(**)이나 될수 있다는게 이해가 힘드네요 ㅠ
Export template 안됨
1
17
2
완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.
1
54
3
main 함수에서 왜 int만 선언이 되는걸까요
1
56
2
8비트 2진수 변환시 왜 1을 더해야하나요?
1
54
2
혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?
1
49
1
프로토타입과 함수간의 인자 불일치
1
73
2
12.12 헤더 관련 질문
1
60
2
Visual Studio Community 2026 사용 문의
1
137
2
Q. 15:30, 부호가 있는 8비트 정수 질문
1
61
2
getchar(), putchar()
1
93
3
강의자리ㅛ
1
79
2
비주얼스튜디오코드로 공부해도 상관없나요?
1
113
2
소스파일안에 여러 파일
1
75
2
F5와 F7의 차이
1
76
2
c = TWO * (a+b); 에서 a와 b는?
1
58
2
; 세미콜론을 붙이는 기준에 문의
1
68
1
Step over 기능 문의
1
53
2
2.6 강의 따옴표 출력 규칙 문의
1
74
2
int main 함수 관련 오류 문의
1
67
2
13.4 words[0]
0
60
2
11.7 함수를 구현해 봤습니다.
1
62
2
11.6 직접 strcmp와 strncmp를 구현해 보았습니다.
1
65
2
11.6 my_strcat과 my_strncat을 구현해봤습니다.
1
53
2
11.6 fit_str함수를 구현해 봤습니다.
1
53
2





