코딩

[C] 배열과 구조체

goosong 2025. 3. 24. 00:51

1. 배열은 같은형의 변수를 여러개 만드는 경우에 사용한다.

ex) int num1, num2, num3; = int num[3];

 

[0] = base address 기준으로 자료형에 맞춰 숫자를 더해가며 주소를 이동한다.

ex)  int  →  base address + 4byte = [1]

      char → base address + 1byte = [1]

     이런 느낌?

 

1-1) 1차원 배열

배열은 포인터와 비슷하다.

 

num[0] = 100; → set연산에 해당함. 

( set연산은 데이터를 설정(저장, 갱신)하는 연산으로 일반적으로 키-값 구조에서 특정 키를 할당할때 사용됨 )

value = num[0]; → get연산에 해당함.

( get연산은 데이터를 조회(읽기)하는 연산으로 특정키를 사용해 값을 가져옴 )

 

1-2) 2차원 배열

마찬가지로 이중포인터와 같다.

ex) int num[행][열] → num[행]로 가는 주소를 따라가라(*) = 안에 num[열]로 가는 주소가 들어있다. → 그 주소를 또 따라가라(**) = num[행][열]에 도착


2. 구조체 (structure) : 타입이 다른 데이터를 하나로 묶는 방법

→ 앞으로 새로운 요소가 추가될 것 같은데 데이터 타입이 확실하지 않을떄 쓰임.

→ 대체로 제일 안전하고 많이 쓰게 될 것.

 

구조체 사용법1

12) 문자열은 멤버접근자 (.)로 바로 접근못함, strcpy로 문자열 복사해 넣기

구조체 사용법2 - typedef

11) Book = struct BOOK

원래는 길게써야하는거 짧게 쓸수있게 해준다.

 

11) 예제1과 달리 중괄호로 문자열 넣어주면 이건 또 가능하다.

그러나 중괄호로 뭉탱이로 넣는건  잘 안쓰는 방법인 듯 하다.

그냥 바로 멤버접근할떄가 많다고 하셨다.

'코딩' 카테고리의 다른 글

[백준 C++] 10871번 - X보다 작은 수  (0) 2025.04.01
[백준 c++] 1026번 - 보물  (0) 2025.03.26
[백준 C++] 2480번 - 주사위 세개  (0) 2025.03.19
[백준 C++] 2525번 - 오븐시계  (0) 2025.03.19
[정올 C] 포인터 - 자가진단6  (0) 2025.03.10