언어/C
[C언어] 주소, 포인터, 배열
qkrgusqls
2023. 3. 24. 09:35
c언어 포인터
지금 까지 배운 것중에 가장 이해가 안돼서 정리
포인터란?
c언어에서 변수가 존재하는 위치(주소값)를 저장하는 변수
type*pointer;
int * pa = &a;
(4바이트의 영역을 int type의 변수로 취급 가능)
*pa는 포인터
&a; 주소 - 주소를 얻는 방법은 변수 앞에 & 붙이기
주소값은 정확히 한지점을 가르킴
*&는 서로 상쇄되는 관계
배열이란?
시작과 끝이 있는 (길이가 있는), 같은 타입이 연속되는 자료구조
배열 크기는 항상 상수로 사용
int arr[10]; 40 바이트의 연속(4*10)

int*pa =&a; 주소로 지정
int arr[5];
5의 배열을 같는 정수형 arr
[]안은 길이를 의미
포인터 연산
ex)
printf("%d\n",pa);
printf("%d\n",pa-1);
int 형이 포인터기 때문에 pa와 pa-1은 4바이트 차이가 난다.
p의 주소값은 a
10 *p
20 *(p+1)
30 *(p+2)
40 *(p+3)
50 *(p+4)
출력
*p = p[0]
입력 받은 순서와 반대로 출력하기

arr[]
배열
arr[0] - 괄호 안의 4를 가르킨다.
arr[7] -9부터
arr[0] 4까지 배열