c언어 포인터 관련 질문이요 ㅠㅠ
-
게시물 수정 , 삭제는 로그인 필요
#include<stdio.h>
void main() {
int b[3][2] = { {10, 20}, {30, 40}, {50, 60} };
int(*pointer)[2];
pointer = b;
printf("pointer = %d\n", (int)pointer);
printf("pointer+1 = %d\n\n", (int)(pointer + 1));
printf("*pointer = %d\n", (int)*(pointer));
printf("*(pointer+1) = %d\n\n", (int)*(pointer + 1));
printf("(*pointer)[0] = %d\n", (int)(*pointer)[0]);
printf("(*(pointer+1)[0]) = %d\n\n", (*(pointer + 1))[0]);
printf("*(*pointer) = %d\n", (int)*(*pointer));
printf("*(*(pointer+1)) = %d\n\n", *(*(pointer + 1)));
printf("*(*pointer) = %d\n", (int)*((*(pointer + 0) + 1)));
printf("*(*(pointer+1)) = %d\n\n", *(*(pointer + 1) + 1));
}
의 출력결과가 포인터 위치에 따라 다르게 나오는데 아직 개념이 부족해서 왜 그렇게 나오는지 궁금합니다.
자세히 설명해주실분 계십니까
void main() {
int b[3][2] = { {10, 20}, {30, 40}, {50, 60} };
int(*pointer)[2];
pointer = b;
printf("pointer = %d\n", (int)pointer);
printf("pointer+1 = %d\n\n", (int)(pointer + 1));
printf("*pointer = %d\n", (int)*(pointer));
printf("*(pointer+1) = %d\n\n", (int)*(pointer + 1));
printf("(*pointer)[0] = %d\n", (int)(*pointer)[0]);
printf("(*(pointer+1)[0]) = %d\n\n", (*(pointer + 1))[0]);
printf("*(*pointer) = %d\n", (int)*(*pointer));
printf("*(*(pointer+1)) = %d\n\n", *(*(pointer + 1)));
printf("*(*pointer) = %d\n", (int)*((*(pointer + 0) + 1)));
printf("*(*(pointer+1)) = %d\n\n", *(*(pointer + 1) + 1));
}
의 출력결과가 포인터 위치에 따라 다르게 나오는데 아직 개념이 부족해서 왜 그렇게 나오는지 궁금합니다.
자세히 설명해주실분 계십니까
#c언어 포인터 #c언어 포인터 예제 #c언어 포인터 배열 #c언어 포인터 개념 #c언어 포인터 사용이유 #c언어 포인터 함수 #c언어 포인터 변수 #c언어 포인터 문제 #c언어 포인터 연산 #c언어 포인터 크기