Language/C

· Language/C
1. 문자의 기본 입출력 1-1. 아스키코드 컴퓨터는 문자를 저장할 때 문자 그 자체의 모양을 저장하지 않는다. 사실 문자라는 건 없다고 생각하는 것이 좋다. 문자는 약속된 정수다. 각 문자마다 고유의 번호를 붙이고 표로 만들어 둔 뒤, 해당 번호를 출력할 때, 자료형이 '문자'일 경우 미리 저장되어 있는 표를 보고 해당 문자를 그려준다. 그런데 개발자마다 다른 표를 사용한다면 서로의 코드가 호환되지 않을 것이다. 그래서 표준화된 약속이 필요한데, 이를 아스키코드라고 부른다. 초기에는 1byte중 7bit에만 문자정보를 담았다가 나중에 확장 아스키코드라고도 불리는 ansi 코드로 발전했다. ansi 코드는 1byte를 전부 사용한다. (8bit == 256개) 그러다가 코딩이 세계 각국으로 퍼지면서 표에..
· Language/C
1. 배열명의 역할 우리가 어떤 자료형을 선언하면 컴퓨터 메모리 공간상에 할당이 된다고 배웠다. 각 메모리 공간은 접근할 수 있는 주소가 각각 있고 그 크기는 환경에 따라 다르다. 이런 주소들은 숫자로 표현이 가능하지만 모든 연산을 할 수 있는 것은 아니고, 특정한 연산만 수행가능하다. 그 중에서 일반적인 정수, 문자, 실수 등의 자료는 주소를 알기 위해서는 &를 붙였어야 했는데, 배열은 그 이름 자체가 주소에 해당한다. 1-1. 배열명 활용 예를 들어서 int arr[5] 라는 배열이 있다고 해보자. 이 arr[5]를 선언한 순간 int 자료형(4 byte)* 5개 (요소의 갯수)로 20byte가 메모리 공간상에 연속적으로 할당된다. 우리는 배열을 인덱스로 접근할 수 있다. 뿐만 아니라 반복을 통해서 ..
· Language/C
1. 포인터 개요 메모리란 우리가 데이터를 넣고 꺼내는 공간이다. 그래서 컴퓨터가 값을 넣거나 사용하기 위해서는 그 메모리 주소를 알아야만 한다. C는 managed language라고 불리는 이 메모리를 직접 접근해서 관리할 수 있는 언어이다. 메모리에 직접 접근해서 값을 변경하거나 사용하도록 해주는 자료형을 포인터라고 부른다. 1-1. 메모리의 주소와 주소 연산자 포인터는 주소를 담고 있는 자료형이다. 포인터는 해당 주소를 참조하여 시작지점 부터 얼마나까지를 가리키는 변수의 값으로 인식할 지 결정한다. 그러면 해당 주소를 나타내는 연산자가 필요한데 이것이 바로 &연산자이다. (Ampersand, 앰퍼샌드) int a = 10; // 우리 컴퓨터 스택의 임의의 공간에 a라는 변수가 만들어지고 10이라는..
· Language/C
0. 배열을 쓰는 이유 앞에서 배웠듯이 변수를 선언하면 그 자료형의 크기만큼 메모리에 할당된다. 이 때 메모리의 할당은 연속적으로 할당되지 않고 제각각 할당된다. 만약 비슷한 자료에 점화식을 적용하거나 접근하고 싶을 경우 각각 변수를 선언했다면, 선언한 만큼 일일이 적용해줘야한다. 이런 경우 비슷한 자료를 연속적으로 모아서 관리하고 사용할 수 있다. 이렇게 연속적으로 비슷한 자료를 모은 것을 배열(array)라고 한다. 1. 배열 사용법 1-1. 배열 선언 및 초기화 추후 동적할당 챕터가 따로 있어서 malloc을 이용한 동적할당은 나중에 설명합니다. 배열의 선언에는 자료형, 배열의 이름, 배열의 요소 갯수가 필요하다. "자료형" "배열의 이름""[요소의 갯수]" 로 주로 표현된다. 요소의 개수를 정적으..
· Language/C
1. 함수 구조 1-1. 함수 정의 우리가 원하는 함수가 무엇을 받아서 어떤 값을 반환할 지를 정하는 것을 의미한다. (받지 않을 지도 반환하지 않을 수도 있다.) 함수의 기능이 무엇인지 (그래서 함수명을 어떻게 할 것인지), 이를 위해서 무슨 데이터가 필요한지, 어떤 값을 반환할지 정한다. 즉, 함수의 이름, 함수가 받는 데이터(매개변수), 함수의 결과값(반환값) 을 정한다. 함수의 반환형 함수의 이름 (매개변수1, 매개변수2, ...) { 우리가 실행할 코드 return (반환할 결과) // 이 때 반환할 수도 안 할 수도 있다. } 함수의 반환형 함수의 이름 (매개변수1, 매개변수2, ...) : 이 부분을 주로 함수의 원형, 함수의 프로토타입이라고 부른다. 1-2. 함수 호출 함수를 사용하기 위해..
· Language/C
1. while, do while 어떤 조건이 true 라면 계속해서 반복하는 반복문이다. while과 do while의 차이점으로는 최소한 한번 실행하고 조건을 확인하느냐 혹은 조건부터 확인하고 실행하냐에 있다 1-1. while while 문 부터 본다면 a 가 10 미만이라면 계속해서 2를 곱한 값을 할당한다. a가 8 * 2 로 16이 되는 순간 조건문을 나온다. #include int main(void) { int a = 1; while (a < 10) { a = a * 2; } printf("a : %d\n", a); // 16이 출력된다. return 0; } 1-2. do while 최소한 한번을 실행하고 조건을 검사한다. 주로 입력을 한번은 받아야 한다던가 등에서 쓰일 수 있다. 상황에 ..
새벽녹차
'Language/C' 카테고리의 글 목록