티스토리 뷰

메모리
  • 컴퓨터 메모리 ->데이터 보관 장소
  • 바이트(8 bits) 단위로 주소가 지정
  • 모든 변수는 주소를 가진다.

포인터

  • 포인터란 메모리주소를 값으로 가지는 변수이다.
  • 메모리주소? => 정수
type-name * variable-name;
ex) int * ptr;

  • 연산자 &는 변수로부터 그 변수의 주소를 추출하는 연산자


int * ip -> 포인터 변수

y= *ip ->ip라는 포인터 변수에 들어있는 주소에 해당하는 값을 y에 넣음.


아래 예제로 살펴보면 ip 포인터 변수의 값은 1028이고 1028주소에 해당하는 값은 1이므로

y =*ip이면 y에는 1이 들어가게 된다.


포인터와 배열

  • 배열의 이름은 배열의 시작 주소를 저장하는 포인터 변수이

  • int calculate_sum(int * arr)

  • int calculate_sum(int arr[])

포인터 arithmetic
  • a[1]은 *(a+1) , a[i]은 *(a+i)
  • a가 정수형 변수이면 a(주소값)가 1000이라면 a+1은 1004가 된다.
int data[] ={1,2,3}
int *p =&data[0];
p ,p+1,p+2 값을 확인해보면

4씩 증가하는것 확인 

int는 4바이트 이므로! char 배열이라면 char는 1바이트 이므로 1씩 증가 할것!





'Computer Engineering > 자료구조' 카테고리의 다른 글

자료구조-동적 메모리 할당  (0) 2018.01.31
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/04   »
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
글 보관함