본문 바로가기

Programming Language

(18)
[Do it! C언어 입문] 13장. 포인터 13장. 포인터 13-1 운영체제의 메모리 관리 방식 메모리 주소 지정 방식 운영체제는 메모리 주소를 1바이트 단위로 관리한다. 즉, 1바이트 단위로 주소가 매겨져 있다. 그러므로 프로그래머가 메모리를 사용할 때 한 번에 읽거나 저장할 크기를 명시해야 한다. 직접 주소 지정 방식 메모리 그림이 나올 때마다 주소를 적어 직접 그려 보자. 그리고, 메모리에 저장될 값과 메모리 주소를 모두 16진수에 익숙해지고 계산에 익숙해 지도록 16진수로 표기해 보자. 직접 주소 지정 방식은 C 언어의 '변수' 문법과 같다 왜 C언어는 어셈블리어나 기계어처럼 주소를 직접 사용하지 않고 변수라는 개념을 사용할까? 변수를 사용하면 변수 이름만으로 해당 변수 (메모리)의 용도와 대입되는 값이 어떤 의미와 관련된 ..
[Do it! C언어 입문] 12장. 배열과 문자열 12장. 배열과 문자열 12-1 배열 데이터를 그룹으로 묶어서 표현 - 배열 (Array) 문법을 사용 배열 선언하고 사용하기 배열 선언하기: 자료형 변수 이름[요소 개수]; 배열의 특정 요소에 값 대입하기: 배열 이름[값을 대입할 색인] = 대입할 값; 배열 문법으로 선언한 변수는 자료형과 [] 안에 적힌 숫자를 곱하여 변수의 크기를 결정 배열 요소에 for문으로 값 대입하기: 배열을 선언할 때는 []에 상수를 넣어야 하지만, 값을 대입하기 위해서 [] 안에 변수를 사용하는 것이 가능 배열 초기화하기 배열의 각 요소에 일정한 값을 대입하여 초기화를 사용해야 한다. 대체로 초기값으로 0을 사용 반복문을 사용하여 배열의 모든 요소에 0을 대입해 보자. 0이 아닌 3과 같은 값으로 초기화한다면? - {3, ..
[Do it! C언어 입문] 11장. 지역 변수와 전역 변수 11장. 지역 변수와 전역 변수 11-1 함수 안에서만 사용하는 지역 변수 자신을 선언한 함수가 호출될 때 메모리에 저장 공간이 만들어졌다가 함수 호출이 끝나면 함께 사라진다. 지역 변수의 이름은 타 함수와 중복해서 사용할 수 있다. 11-2 프로그램 전체에서 사용하는 전역 변수 전역 변수는 한 번 선언하면 프로그램 전체 영역에서 사용 가능하다. 전역 변수로 특별한 초기화 값이 없으면 0으로 초기화 된다. 전역 변수의 이름은 겹칠 수 없다. 지역 변수와 전역 변수의 이름이 같은 경우 오류는 안 난다. 하지만 제대로 된 결과는 얻지 못할 가능성이 높다. 꼭 필요한 경우에만 사용해야 한다. 선언할 때 g_와 같이 접두어를 붙이면 지역 변수와 전역 변수의 이름이 겹치는 문제를 미리 막을 수 있다. 11-3 e..
[Do it! C언어 입문] 10장. 시프트 연산자와 비트 연산자 10. 시프트 연산자와 비트 연산자 10-1 비트 단위 연산과 비트 패턴 10-2 시프트 연산자 왼쪽으로 이동해서 사라지는 비트 - Overflow 오른쪽으로 이동해서 사라지는 비트 - Underflow 할당된 메모리 공간의 크기를 벗어나면 해당 비트들은 사라지고, 빈 자리는 0으로 채워짐 시프트 연산자를 사용할 때 주의할 점 1) 연산자 우선순위가 낮다 - 괄호를 잘 활용하자. 2) 변수에 부호가 있는 경우 (signed char와 같은 경우) - >> 시프트 연산을 할 때 빈 자리를 무작정 0으로 채우는 것이 아니라, 음수인 경우는 1로 채우게 된다. 10-3 비트 연산자 지정한 비트에만 값을 대입하는 연산자는 없다 - 최소 1 바이트 단위로 연산이 이루어지기 때문 만약 지정한 비트에만 0 또는 1을..
[Do it! C언어 입문] 9장. 반복문 09. 반복문 09-1 반복문의 기본 구조와 for 반복문 반복을 시작하기 위한 시작 조건 반복을 계속 진행할 것인지를 판단하는 종결 조건 반복의 조건을 바꾸기 위해 조건 변화 수식 위의 3요소를 정규화된 형식으로 표현하는 for 반복문 종결 조건만 형식으로 갖고 나머지 요소는 자유롭게 배치하는 while 반복문 for 반복문의 기본 구조 for(시작 조건; 종결 조건; 조건 변화 수식) 명령문; 09-2 while 반복문 종결 조건이 거짓이 될 때까지 명령문을 반복 사용하고 싶은 위치나 작업 순서에 맞게 시작 조건과 조건 변화 수식을 적절히 배치하라는 의미 while 반복문으로 무한 루프 만들기 for 문의 무한 루프인 for ( ; ; )는 while(1)과 같다. do ~ while 반복문 whil..
[Do it! C언어 입문] 7장. 연산자, 8장. 조건문 07. 연산자 07-1 기본 연산자 대입 연산자 산술 연산자 증감 연산자 ++, -- 단항 연산자로 한 개의 메모리만 사용하므로 연산 속도가 더 빠르다. 단순히 1을 증감시키기 위한 목적이라면 증감 연산자를 사용하자. 증감 연산자의 표현에 따라 약간의 차이가 있는데, 전위형은 값을 먼저 증감한 후에 연산을 하고, 후위형은 연산을 하고 나서 값을 증감한다. 관계 연산자 논리 연산자 08. 조건문 08-1 제어문 조건문: 예외 사항에 대처하기 위한 문법: if, switch 반복문: 반복 행위를 효과적으로 표현하기 위한 문법: for, while, do ~ while 08-2 if 조건문 단일 문장을 수행하는 조건문 - () 안에 있는 조건 수식의 결과 값이 참으로 나오면 (0이 아닌 모든 값) 그 뒤에 명..
[Do it! C언어 입문] 6장. 표준 출력 함수 06. 표준 출력 함수 06-1 라이브러리 라이브러리 파일 (*.lib)이 등장한 이유 자신이 작업하는 소스 파일 목록 중에서 변경 가능성이 없는 파일들을 다른 곳에 보관 소스 파일 대신 목적 파일을 소스 목록에 포함시켜 작업 소스 파일이 아니기 때문에 컴파일되지 않고 링크할 때만 사용된다. 하지만, 목적 파일에는 단점이 있는데, 목적 파일에 포함되어 있는 함수의 내용이 실제 사용 여부와 관계 없이 모두 실행 파일에 포함되게 된다. 그러므로, 이를 개선하기 위해 C 언어는 라이브러리 개념을 제공하게 되었다. 라이브러리 파일은 목적 파일을 재구성해 실제로 다른 소스 파일에서 사용한 함수의 기계어만 분리하여 저장한다. 그리고 실제로 사용되는 함수들만 실행 파일에 포함시킨다. 06-2 라이브러리 사용 설명서,..
[Do it! C언어 입문] 5장. 함수 05. 함수 05-1 C 언어와 함수 함수란? 일련의 명령문들을 한데 묶어서 그룹으로 만들어 두어 작업별 그룹으로 나누어 둘 수 있는 C 언어 문법 C 언어로 작성한 프로그램은 함수들의 집합체이고, 그 함수들끼리 서로 불러서 사용하는 형태로 진행된다. 그러므로, 어떤 함수가 최초로 시작되는 함수인지를 컴파일러가 알 수 있어야 한다. 그 역할을 main 함수가 한다. - 프로그램 시작 함수, 즉, 컴파일러에게 프로그램이 시작한다고 알려 주는 특별한 함수 05-2 함수 정의하고 호출하기 함수 정의하기 함수 호출하기 함수의 매개변수 자세히 살펴보기 함수 안에서 선언한 변수들은 해당 함수에서만 사용할 수 있다. 그래서, main 함수의 변수 값을 정의한 함수에서 사용하기 위해 매개변수 - parameter가 필..