Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
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
more
Archives
Today
Total
관리 메뉴

archive

[C언어 개념] 포인터 2 본문

C \ C++/C 개념 정리

[C언어 개념] 포인터 2

안정민 2022. 6. 29. 20:55

- 포인터 배열

: 배열이 선언되면 컴파일러는 메모리에 기저주소와 모든 배열의 요소들이 포함될 수 있는 만큼의 연속적인 공간을 할당한다.   *** 기저주소는 첫 번째 요소(인덱스 0)의 위치

ex) int x[5] = {1,2,3,4,5};

:위와 같은 배열의 기저주소가 1000이라고 하고, int 형의 크기가 2바이트라고 하면 , 1은 1000에, 2는 1002에, 3은 1004에, 4는 1006에, 5는 1008에 저장된다. 

: 이름 x는 첫 번째 요소를 가리키는 상수 포인터로 정의가 된다. 따라서 x의 값은 첫 번째 원소 x[0]이 저장된 1000이 된다.

: 즉 x = &x[0] = 1000

: 만약 int형 포인터인 p를 정의하면, p가 배열x를 가리키게 할 수 있다.

 ex) p = x

       p = &x[0]

: p++을 이용하여 배열 x의 모든 원소에 하나씩 접근이 가능하다.

  p = &x[0]        (=1000)

  p+1 = &x[1]    (=1002)

  p+2 = &x[2]    (=1004)

  p+3 = &x[3]    (=1006)

  p+4 = &x[4]    (=1008)

 

<예제>

포인터 변수를 사용하여 배열의 모든 원소를 더하는 프로그램을 작성하라.

-

 

 

-2차원 배열에서의 포인터 변수

: 1차원 배열에서 *(x+i)와 *(p+i) 모두 x[i]이다. 이와 마찬가지로 2차원 배열의 원소는

:*(*(a+i)+j) 또는 *(*(p+i)+j)로 표현이 가능하다.

 

 

'C \ C++ > C 개념 정리' 카테고리의 다른 글

rand(), srand() 함수 개념 정리  (0) 2023.03.21
qsort() 함수  (0) 2023.03.21
strtok() 함수 개념  (0) 2023.03.21
[C언어 개념] 포인터 연산 규칙 정리  (0) 2022.06.26
[C언어 개념] 포인터 1  (0) 2022.06.26