너무 헷갈린다.
#include<stdio.h>
int main()
{
int i = 0;
int* p = &i;
printf("%p ", &i); //1번
printf("%p\n", p); //2번
printf("%p\n", &p); //3번
int a[5] = { 2,4,6,8,10 };
printf("%p\n", a); //4번
printf("%p\n", &a); //5번
printf("%p\n", &a[0]);//6번
10;
printf("%p\n", 10); //7번
printf("%p\n", &10); //8번, 컴파일안됨.
return 0;
}
1번 : int형 변수 i의 주소값
2번 : int형 변수 i의 주소값을 가지는 int형 포인터 변수 p
3번 : int형 변수 i의 주소값을 가지는 int형 포인터 변수 p의 주소값
4번 : 배열 a의 시작 주소값 (상수?)
5번 : 배열 a의 시작 주소값을 가지는 무언가의 주소값(상수의 주소값?)
6번 : 배열 a의 첫번째 요소(변수)의 주소값
7번 : 상수 10
8번 : 상수 10의 주소값을 가지는 무언가의 주소값 (컴파일 안됨)
1번,2번,3번은 명확하게 이해를 했다.
4번,6번도 명확하게 이해가 간다.
배우기로는 분명 "배열의 이름 = 배열의 시작 주소값" 이라 배웠으니
a의 주소값이나 a[0]의 주소값이나 같다고 추측이 가능하다.
5번은 내가 이해하길 3번과 같다고 생각했다.
배열의 시작 주소값인 a를 저장하고 있는 곳의 주소값이라고 이해했는데
그게 아닌가보다. 4번 5번 6번이 모두 같은 주소값을 가지고 있다.
배열의 이름 또한 어딘가에 저장이 되어있을것 같은데 너무 헷갈린다.
혹시 5번의 행위와 8번의 행위가 같은 행위인가?
배열요소의 개념과 배열의 개념을 내가 혼동하고 있는듯 하다.
질문 글을 올려봐야겠따... 이해가 가질 않는다.
'💯Study > 👨💻C Language' 카테고리의 다른 글
가변배열 구현시 의식의 흐름 정리(가변배열 2) (0) | 2022.05.06 |
---|---|
가변배열(Variable-length array)이란?(가변배열 1) (0) | 2022.05.05 |
댓글