목록전체 글 (402)
happy coding
재귀호출(recursive call) 재귀호출이란 함수 내부에서 함수가 자기 자신을 또다시 호출하는 행위를 의미하는데, 끝없이 반복할 수 있기 때문에 함수 내에 재귀 호출을 중단하도록 조건이 변경될 명령문을 반드시 포함해야 한다. 예를 들어 재귀 호출을 사용하지 않고 1부터 n까지의 합을 구하는 함수를 만들어 본다면, 아래의 코드와 같게 만들게 된다. int sum(int n){ int i; int result = 0; for(i=1 ; i
변수의 유효 범위(variable scope) C언어에서 변수의 선언 위치에 따라 해당 변수의 유효 범위, 메모리 반환 시기, 초기화 여부, 저장되는 장소 등이 변경되는데 변수는 이 기준을 통해 1. 지역 변수 2. 전역 변수 3. 정적 변수 4. 레지스터 변수 로 총 4개로 나눌 수 있다. 메모리의 구조 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공하는데, C 프로그램이 운영체제로부터 할당받는 대표적이 메모리 공간은 1. 코드(code) 영역 2. 데이터(data) 영역 3. 스택(stack) 영역 4. 힙(heap) 영역 으로 나눌 수 있다. 지역 변수(local variable) 지역 변수란 '블록' 내에서 선언된 변수를 의미한다. 변수가 선언된 블록 내에서만 유효하기 때문에..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/MnpyD/btrRAgKBRtx/OCvdbQaxGk9elAfWRfG3Gk/img.png)
함수 프로그래밍에서 함수란 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합으로 정의할 수 있다. 그 종류에는 크게 1. 표준함수 2. 사용자 정의 함수 로 구분할 수 있다. 함수를 사용하는 이유 1. 반복적인 프로그래밍을 피할 수 있다. 2. 모듈화로 인해 전체적인 코드의 가독성이 좋아진다. 3. 프로그램에 문제가 발생하거나 기능의 변경이 필요한 경우에도 손쉽게 유지보수를 할 수 있다. 따라서 하나의 기능을 하나의 함수로 만드는 것이 좋다. 함수의 정의 1. 반환 타입(return type) : 함수가 모든 작업을 마치고 반환하는 데이터의 타입을 명시한다. 2. 함수 이름 : 함수를 호출하기 위한 이름을 명시한다. 3. 매개변수 목록(parameters) : 함수 호출 ..
루프의 제어 일반적으로 조건식의 검사를 통해 루프로 진입하면, 다음 조건식을 검사하기 전까지 루프 안에 있는 모든 명령문을 실행하지만 continue 문과 break 문은 이러한 일반적인 루프의 흐름을 사용자가 직접 제어할 수 있도록 해준다. continue 문 continue 문은 루프 내에서 사용하여 해당 루프의 나머지 부분을 건너뛰고, 바로 다음 조건식의 판단으로 넘어가게 한다. 보통은 반복문 내에서 특정 조건에 대한 예외 처리를 하고자 할 때 자주 사용된다. int i; int except_num = 3; for(i=1; i
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dFNqd8/btrRANusWkE/YgTTR7SH13UHVwHKNdMxok/img.png)
TCP school 을 보고 정리한 내용입니다. 반복문(iteration statements) 반복문이란 프로그램 내에서 똑같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어하는 명령문이다. 프로그램이 처리하는 대부분의 코드는 반복적인 형태가 많기에 가장 많이 사용되는 제어문 중 하나이다. 종류로는 1. while 문 2. do / while 문 3. for 문 이 있다. while 문 while 문은 특정 조건을 만족할 때까지 계속해서 주어진 명령문을 반복해 실행한다. while (조건식) { 조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문; } while 문은 우선 조건식이 참(true)인지를 판단하여, 참이면 내부의 명령문을 실행하다. 이렇게 내부의 명령문을 전부 실행하고 나면, 다시 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/br90qN/btrRrowFKq3/n0EWaJCucj3VzcMd66ubPK/img.png)
TCP school을 보고 정리한 내용입니다. 제어문(control flow statements) C 프로그램에는 절차적 프로그램(procedural program) 또는 명령형 프로그램(Imperative program)에 속하며, 많은 명령문이 포함되어 있고 이 명령문은 처음부터 끝까지 순서대로 실행된다. 따라서 원하는 결과를 얻기 위해 프로그램의 이러한 순차적인 흐름을 제어해야만 한다. 이때 사용하는 명령문을 제어문이라고 한다. 제어문에는 조건문, 반복문 등이 있는데, 제어문에 속하는 명령문들은 중괄호{}로 둘러싸여 있으며, 그 영역을 블록(block)이라고 한다. 조건문(conditional statements) 조건문은 주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문이다. ..
TCP school을 보고 정리한 내용입니다. 연산자(operator) 연산자란 프로그램의 산술식이나 연산식을 표현하고 처리하기 위해 제공되는 다양한 기호를 의미한다. 산술 연산자(arithmetic operator) 산술 연산자는 사칙연산을 다루는 기본적이면서도 가장 많이 사용되는 연산자이다. 또, 모두 2 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽이다. + 왼쪽의 피연산자에 오른쪽 피연산자를 더한다. - 왼쪽의 피연산자에서 오른쪽 피연산자를 뺀다. * 왼쪽의 피연산자에 오른쪽 피연산자를 곱한다. / 왼쪽의 피연산자를 오른쪽 피연산자로 나눈다. % 왼쪽의 피연산자를 오른쪽 피연산자로 나눈 다음, 그 나머지를 반환한다. 연산자의 우선순위(operator preced..
TCP school을 보고 정리한 내용입니다. 타입 변환(type conversion)은 다른 타입끼리의 연산 중에, 하나의 타입을 다른 타입으로 바꾸는 행위를 말한다. 표현 범위가 좁은 타입에서 더 넓은 타입으로의 타입 변환은 큰 문제가 되지 않지만, 반대의 경우에는 데이터 손실이 발생한다. 타입 변환은 크게 1. 묵시적 타입 변환(자동 타입 변환) 2. 명시적 타입 변환(강제 타입 변환)이 있다. 묵시적 타입 변환(자동 타입 변환, implicit type conversion) 묵시적 타입 변환은 대입 연산이나 산술 연산에서 C 컴파일러가 자동으로 실행해주는 타입 변환을 가리킨다. C언어에서는 대입 연산 시 연산자의 오른쪽에 존재하는 데이터의 타입이 연산자의 왼쪽에 존재하는 데이터의 타입으로 묵시적 ..