일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 포인터
- VS ERROR
- 연산자
- Windows
- Desktop
- Tips강좌
- 티스토리
- 리뷰
- c#
- doit코틀린프로그래밍
- 문법
- Programming
- 백준
- Javascript
- c++
- tipssoft
- 배열
- Kotlin
- CS
- Tips프로그래밍강좌
- 지식나눔강좌
- Win32
- 이지스퍼블리싱
- Direct2D
- 김성엽
- 프로그래밍
- 알고리즘
- Visual Studio
- 함수
- c
Archives
- Yesterday
- Today
- Total
F.R.I.D.A.Y.
배열 변수의 이름이 0번 인덱스의 시작 주소인 이유 본문
반응형
이번 포스트는 제목 그대로 배열 변수의 이름이 어째서 해당 배열의 0번 인덱스의 주소가 되는지 알아봅니다.
간단해요!
int arr[10];
&arr[0];
// 처음 배울 때 주로 사용하는 0번 인덱스의 주소를 가져오는 법입니다.
&*(arr + 0);
// 처음 코드는 위와 같이 변경할 수 있습니다.
&*(arr);
// 0은 더하든 말던 값의 변화가 없으므로 지울 수 있습니다.
(arr);
/* 간접 참조 연산자(*)와 주소 연산자(&)는 곱셈과 나눗셈처럼 서로 상반 관계입니다.
따라서 함께 없앨 수 있습니다. */
arr;
// 불필요한 괄호를 지워줍니다.
// 따라서
// &arr[0] == arr 입니다.
이 내용은 포인터를 배우다보면 알게되는 내용입니다 :)
이 표현법을 알게 되면 대괄호를 통한 배열 연산자에 다시 주소 연산자(&)를 붙여 특정 인덱스의 주소를 가져오지 않아도 됩니다.
만일 배열의 3번 인덱스 주소를 가져오고 싶다면 아래처럼 작성하면 됩니다.
scanf("%d", arr + 3);
// 예시: arr은 int 배열로, 3번 인덱스에 값을 받으려고 합니다.
더 자세한 내용은 아래 포스트를 참고하세요.
728x90
반응형
'DEV > C C++' 카테고리의 다른 글
함수 호출 구조 (0) | 2020.01.07 |
---|---|
포인터 part1. default (0) | 2020.01.07 |
typedef (0) | 2020.01.04 |
구조체(struct) part1. default (0) | 2020.01.02 |
비트 연산자 : 함수에 인자 넘기기 (0) | 2019.12.31 |
Comments