inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

&A[0]+1과A[1]

197

c쌩초보

작성한 질문수 5

0

#include<stdio.h>

int main() {

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

printf("%p\n%p", &A[0] + 1, A[1]);

}

여기서 &A[0]+1값과A[1]값이 같은 이유가 뭔가요 ?

&A[0]=A[0]이어서&A[0] + 1=A[0]+1=&A[0][1]이 되는거 아닌가요?

답변 1

0

나무늘보

안녕하세요!

&A[0] 과 A[0]은 다릅니다.  반면 &A[0] = A 는 같습니다.

&A[0]은 배열 A의 0번째 인자의 시작 주소를 의미합니다.

A[0]은 배열 A의 0번째 인자의 값을 의미합니다. 

이 둘을 printf에서 %p 로 출력하면 결과값은 같습니다만, 프로그램상의 의미는 다릅니다.

.

.

&A[0] + 1 = (&(A[0]) + 1  = A[1] 이 성립합니다.

(&(A[0]) + 1  를 글로 풀어 보면

A배열의 첫번째 요소의 주소에서 sizeof(int) * 1 만큼 다음 주소값.

0

c쌩초보

sizeof(int)*1의값은4아닌가요? &A[0]+1을 실제로 출력해보니 A배열의 첫번째 요소의 주소에서 60만큼떨어져있네요.

21강 배경음악

2

43

1

llm_decision_logs 저장 실패(실적 컬럼 불일치)를 어떻게 해결할까요?

2

63

4

캐릭터 베지어 커브 따라가게 만들기

1

49

3

디자인 시스템 강의 질문

1

43

1