2차원 배열 관련 질문입니다.
385
2 asked
안녕하세요. 포인터를 공부하고 있는 학생입니다.
예를 들어 1차원 배열이 있을 떄
int a = 2;
int b = 3;
int* ptr[2] = { &a,&b };
for (int i = 0; i < 2; i++) {
printf("%d ", *ptr[i]);
}
이렇게 하면 2,3이 나오는건 알겠습니다.
2차원 배열로 넘어가서
int a1[3]= { 1,2,3 };
int b1[3] = { 10,20,30 };
int* ptr1[2] = { a1,b1 };
printf("%d\n", *a1); --> 이때 1이 나오는 것도 알겠습니다. a1은 a1[0]의 주소값이 들어있고 *a1을 함으로써 a1[0]을 가리키니까요.
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", ptr1[i][j]);
}
printf("\n");
}
--> 문제는 볼드체로 표시한 부분인데, ptr1[i]가 사실상 포인터여서 &ptr1[i][0]이라는 것을 배웠습니다. 그렇다면 ptr1[i][j]도 &ptr1[i][j]이라는 것인데, 그러면
printf("%d ", ptr1[i][j]);
이걸 했을 때 ptr1[i][j]의 주소값이 나와야하지 않나요? *ptr1[i][j]를 하니까 에러가 뜹니다. 1차원 배열에서는 *를 써줘야 오히려 원소가 나왔는데 왜 이차원 배열에서는 안써줘도 되는지 궁금합니다.
감사합니다!
Answer 0
float 출력관련 질문
0
269
1
마지막 2차원 배열포인터 예제 직접 만드신건가요?
1
555
0
scanf 문의
0
413
1
visual studio 2019버전 max함수 헤더파일없이
0
615
1
결과값 다른것에 대해 질문해도될까요.
0
312
0
#define 형식지정도 컴퓨터가 알아서 하나요?
1
633
1
이렇게 하면 이상한 결과가 나옵니다
0
395
1
double
0
240
1
2차원 배열 포인터 연습 해보는 중에
0
291
0
ex1.cpp 파일을 찾을 수 없다고 합니다.
1
267
1
포인터 선언
0
217
0
strcpy를 strcpy_s로 바꿔야 할 것 같습니다.
1
419
1
bool r.....
0
192
0
정수와 실수를 모두 사용할수 있는 변수가 있나요?
0
309
0
마지막 문제 질문입니다.
0
250
0
1번 문제 관련 질의
0
324
1
double 변수 출력 시의 오류에 관하여
0
301
0
scanf unsafe에러가 나네요.
7
294
1
call-by-reference에 대해서 질문있습니다
2
247
0
소스코드
0
362
0
정적 변수의int Color::counter부분에 대해
0
215
0
"" 와 '' 의 차이
0
198
0
클래스 관련해서 질문있습니다!
0
249
1
주소값이 계속 음수로 나옵니다
1
1055
2

