스마트 컨트롤러 - 1차원 배열의 입력과 출력


학습목표

 

C에서 배열이 어떻게 구동하는지 이해할 수 있다.

 

1차원 배열

 

p/257

 

배열에서 3개의 변수를 만들었지만 그 이상의 변수를 초기화하여도 에러가 발생하지 않는다. compiler는 문법적 오류를 검사하기 때문에 경우에 따라서는 문제가 발견되지 않을 수 있다.

 

//visual studio에서는 배열을 생성할 때 사용자가 배열의 범위를 침범하여 코딩하는 경우를 대비하여 배열 사이를 12byte로 띄워놓았다.

 

First In Last Out으로 자료를 넣고 빼는 것이 stack 메모리의 출력 형식이다.

 

QueueFirst In First Out 형식이다. ex) 키보드, 마우스 입력

//순서가 중요시 되는 작업에는 First In First Out형식을 쓴다.

 

Stack구조는 자주 사용하는 것을 다시 쓴다는 규칙을 바탕으로 자주 쓰는 것을 쉽게 꺼내 쓸수 있는 곳에 보관하는 것이다. ->가장 최근에 만든 함수/변수가 가장 먼저 사용될 가능성이 높다!

 

p/259 예제 - 배열의 길이 계산)

 

배열을 만들 때 변수의 개수를 세기 귀찮을 때 개수를 넣지 않아도 compiler에서 자동으로 개수만큼 변수를 생성해준다.

 

초기화시키지 않은 배열의 값에는 0이 들어간다.

 

p/262 예제 - 문자열)

 

 

 

%s 는 시작 문자의 주소점에서 시작해서 0이 나올 때 까지 출력한다.

 

코드를 짜다가 아스키코드의 번호가 필요한 경우가 있다. 이 때 %c‘ ’을 활용하여 아스키 코드를 알아볼 수 있다.

 

p/263 scanf 함수를 이용한 문자열의 입력

 

scanf를 사용하여 문자열을 입력할 때 띄워쓰기를 하게 되면 띄워쓰기 전까지만 출력된다.

 

/* visual studio에서 scanf를 제한하는가?

 

위에 선언된 str변수는 buffer이기 때문에 사용자가 입력하는 내용을 변수의 용량이 넘치더라도 그대로 입력해준다.

 

위의 str변수의 크기를 8로 지정하였는데도 scanf로 인해 그 이상이 입력되는 상황이 발생한다. 때문에 visual studio에서는 scanf를 사용하지 못하게 한다. => scanf는 경계체크를 하지 않는다.

 

 

%s를 사용하지 않고 문자열을 출력하게 코딩할 수 있다.



 

 

반응형
Posted by newind2000