반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
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
Archives
Today
Total
관리 메뉴

폴크(FOLC)

C 배열 과 포인터 본문

교육 관련/C

C 배열 과 포인터

folcjin 2022. 1. 14. 19:35
728x90
반응형

# 배열
# 같은 타입(자료형)의 변수들의 모임
   > 1차원 ~ N차원 까지 사용 가능 ( 메모리를 넘지 않는 상황 )
   > 보통 1차원 ~ 2차원 까지를 가장 많이 이용

# 특징
   > 배열을 선언할때 길이는 상수 이어야 한다.
   > 첫번째 번호는 0번 부터 시작
   > 컴파일러는 배열의 길이가 아닌 배열의 주소값을 이용하여 접근한다.

# 메모리 크기
   > 배열의 자료형 * 배열의 길이
   > sizeof(이름) / sizeof(자료형)

# N차원 배열
   > 2차원 이상의 배열
   > 배열의 각 요소가 배열이 될 수 있다.   

# 1차원 배열
   > 구조1 : 자료형 이름 [ 길이 ];
      - 생성될때 초기화 하지 않았으므로 주의해서 사용
   > 구조2 : 자료형 이름 [ 길이 ] = { 요소1, 요소2, ... };
      - 생성될때 초기화 하였으므로 각 위치에 맞는 요소값으로 채워짐 ( 0 -> max )
      - 자료형과 요소의 타입이 동일해야 함.

   > 구조3 : 자료형 이름 [ ] = { 요소1, 요소2, ... };
      - 생성될때 초기화 하면서 배열의 길이를 요소 개수 만큼 자동 생성
      - 자료형과 요소의 타입이 동일해야 함.

# 2차원 배열
   > 구조1 : 자료형 이름 [ 길이1 ][ 길이2 ];
      - 생성될때 초기화 하지 않았으므로 주의해서 사용
   > 구조2 : 자료형 이름 [ 길이1 ][ 길이2 ] = { 요소1, 요소2, ... };
      - 생성될때 초기화 하였으므로 각 위치에 맞는 요소값으로 채워짐 ( 길이2 -> 길이1, 0 -> max )
      - 자료형과 요소의 타입이 동일해야 함.

   > 구조3 : 자료형 이름 [ 길이1 ][ 길이2 ] = { 요소1, 요소2, ... };
   > 구조4 : 자료형 이름 [ 길이1 ][ 길이2 ] = { {요소1, 요소2}, {,,}, ... };
   > 구조5 : 자료형 이름 [ 길이1 ][ 길이2 ] = { {요소1, }, {요소2, 요소3}, {,,}, ... };
      - 생성될때 초기화 하면서 배열의 길이를 요소 개수 만큼 자동 생성
      - 자료형과 요소의 타입이 동일해야 함.
      - 길이2 에 대해서는 되도록이면 길이를 명시하고 사용하도록 한다.

 

# 포인터
# 변수의 주소값으로 해당 데이터가 저장되어 있는 메모리 시작 위치
   > 1byte 크기씩 나누어서 관리 ( char 1칸, int 는 4칸 )
   > 각 자료형에 맞는 pointer 변수를 선언하여 저장/사용 가능

# 형식
   > 자료형 * 이름 = &동일 자료형 변수 이름;
   > 자료형 * 이름 = 동일 자료형의 주소값;
   > 자료형과 변수명 사이에 작성
   > 생성할때 초기화 하여 사용해야 함.

# 특징
   > 포인터 변수에 접근하는 방식

      - 참조 연산자 : * - pointer
      - 주소 연산자 : & - ampersand
   > * 로 선언한 변수는 &로 주소값으로 초기화 또는 입력이 가능
   > &로 주소값에 접근한 변수의 실제 값은 *로 사용 가능
   > 주소 값을 더하거나 빼기하여 다음 자료형 크기만큼의 위치로 이동 가능

# 예제
   > int a = 100;

   > int *a_ptr = &a;
   > int *b_ptr = &a_ptr;
   > printf("%d, %d", *a_ptr, **b_ptr);

728x90
반응형
사업자 정보 표시
사업자 등록번호 : -- | TEL : --

'교육 관련 > C' 카테고리의 다른 글

C 메모리는?  (0) 2022.01.20
C 파라미터 전달 방법  (0) 2022.01.17
C 함수 와 변수  (0) 2022.01.12
C 제어 관련 명령문  (0) 2022.01.10
C 연산자  (0) 2022.01.08