Array 배열

Array는 이런 식으로.
인덱스로 호출할 수 있다. 

 

 

인덱스를 사용해 값을 수정할 수 있다. 

 

 

10개의 숫자가 들어가는 Array에 1번 인덱스로 80 넣고 출력할 수 있다. 

 

 

그런데 이렇게 넣으면 

 

이런 8이 나옴 

내가 넣은 것이 아님.. 

그냥 그 메모리 주소에 우연히 놓여져 있던 값이 불려온 것이라 함.. (쓰레기 값 garbage value)

 

 

암튼 0번 인덱스에도 값을 넣어주면 정상적으로 출력이 됨.

 

 

지금 Array에 데이터 타입을 정해주고, [] 대괄호 안에 들어갈 숫자로 크기도 지정해준 것임 

배열을 선언할 때 크기를 정해주면 좋은 점은 

1. 코드 읽는 사람에게 배열의 크기와 의도를 즉시 알려줘서 코드 가독성을 높여주고,

2. 컴파일러가 배열 크기를 기반으로 메모리 할당량을 결정하고, 배열을 넘어서는 접근이 있는지 미리 검사할 수 있다고 한다. 그러면 프로그램의 안정성을 조금 더 확보할 수 있다고. 

3. 정적 배열은 스택 메모리에 할당된다. 스택 메모리는 할당과 해제가 빠르며 자동으로 관리되어서 메모리 누수가 적다고 함. 

4. 성능이 좋아지는 게, 동적 메모리 할당에 비해 정적 배열 접근 속도가 빠르다. 동적 할당은 메모리 할당과 해제 시 오버헤드가 발생할 수 있지만, 정적 배열은 이런 추가 비용이 없다고 함. 

 

나쁜 점은 유연성 부족, 실제 사용량보다 크게 메모리를 할당할 수 있어서 메모리 낭비가 될 수 있다. 큰 배열을 다룰 때는 문제가 될 수도 있음. 그리고 큰 크기의 배열을 스택에 할당하려고 하면 스택 오버플로를 일으켜 비정상적으로 프로그램이 종료될 수 있음. 배열 크기가 컴파일타임에 결정되기 때문에 런타임에는 크기를 조정할 수 없는 게 상황에 따라 갑갑할 수 있다..

 

Parenthesis

Curly brackets..

 

 

 

Function 함수

먼저 함수 이름을 정해야 한다. 기능에 따라 이름 정해야 함. 

void 는 어떤 정보도 반환하지 않는다는 것을 의미함 

sayHi 함수를 실행하려면 프로그램 진입점인 main 함수에서 호출해 줘야 함

main 함수는 특별한 함수임.

우리가 프로그램을 실행하면 운영체제가 main 함수부터 찾아서 실행한다.

main은 기본적으로 호출되지만, 다른 함수들은 main에서 직간접으로 호출해야 실행할 수 있다. 

 

 

sayHi 함수에서

'char name[]'이라는 매개변수Parameters

(함수 정의에 사용되는 변수. 함수가 호출될 때 전달받을 인자들의 '형식'을 정의함)를 넣어주고,

'Mike'라는 인수Argument(함수로 전달되는 값. 변수)를 입력받아 결과를 출력할 수 있음  

 

 

이렇게 여러 번 부를 수 있다 ㅎㅎ 

 

 

..🐌

+ Recent posts