c언어

· c언어
스택 스택이란 나중에 입력된 것이 먼저 출력되는 자료구조입니다.(LIFO, Last In First Out) PUSH, POP, TOP등의 연산이 있습니다. 함수를 한번 생각해 보면, 함수는 나중에 호출된 함수일수록 먼저 return됩니다. 이는 사실 함수를 호출할 때마다 스텍 메모리에 스택 프레임을 push하며, 함수가 종료되었을 때에는 스텍 메모리에서 pop을 수행하기 때문입니다. 스택프레임 스택프레임은 함수가 호출되기 이전의 상태를 기록하는 역할을 합니다. 즉 함수를 호출하기 직전까지의 상태를 기록하였다가, 함수가 리턴된 이후 호출한 함수의 이전 상태를 복원하는 역할을 합니다. 스택 프레임에는 다음과 같은 내용들이 포함됩니다. 스택 프레임의 내용 매개 변수(Parameter) : 호출 함수가 전달한..
· c언어
C언어에서 변수는 지역변수와 전역변수로 나눌 수 있습니다. 그 차이점에 대해서 알아보도록 하겠습니다. 지역변수 지역변수는 함수 내에서 선언되거나, 중괄호(블럭) 내에서 선언되거나, 형신 인자로서 선언되는 변수를 뜻합니다. 함수 내에서 선언되는 지역변수의 경우, 지역변수가 선언된 함수 내에서만 접근이 가능하며 함수가 호출될 때마다 새롭게 할당됩니다. 또함 호출된 함수가 리턴되면 지역변수는 소멸합니다. 중괄호(블럭)내에서 선언되는 지역변수의 경우 중괄호에 진입할 때 할당되고 빠져나가면 소멸합니다. 형식 인자도 지역변수와 비슷하게 선언된 함수 내에서만 접근이 가능하며, 함수가 리턴되면 저장된 값이 사라집니다. 또한 for()문의 괄호 속 지정문에서 선언되는 변수 또한, for문 속에서만 유효합니다. 하나의 지..
· c언어
추상화 (Abstraction) 추상화에는 다음과 같은 2가지 종류의 추상화가 존재합니다. Process Abstraction 어떤 목적을 수행하는 일련의 문장(코드)들을 subprogram으로 작성하는 것입니다. 이때 Subprogram은 Procedure와 Function으로 나뉩니다. Data Abstraction 프로그래머가 새로운 data type(자료형)을 정의하는 것을 의미합니다. Java와 같은 객체지향 언어에서 다루게 됩니다. Subprogram subprogram을 통해 반복되는 코드를 한번만 작성한 뒤 재사용 할 수 있으며, subprogram을 통해 프로그램의 module화가 용이해집니다. 또한 개별 컴파일(separate compilation)이 가능합니다. subprogram은 ..
· c언어
코딩을 하다 보면 조건에 따라 특정한 코드를 실행하거나, 실행하지 않아야 하는 경우가 있습니다. 또한 어떤 경우에는 같은 코드를 반복적으로 실행해야 하는 경우도 있습니다. 이번 포스팅에서는 그러한 방법에 대해서 알아보도록 하겠습니다. If문 if문은 다음과 같이 사용합니다. # include int main() { int a = 0; if(a > 0) printf("%d", a); if(a 0){ printf("%d\n", a); } else { printf("%d\n", a+1); } if(a < 3){ printf("%d\n", a)..
· c언어
C언어의 연산자에 대해서 알아보도록 하겠습니다. 아래 표는 C언어의 연산자들과 우선순위를 나타낸 표입니다. 우선순위 연산자 설명 연산 방향 1 ( ) [ ] . -> (자료형){값} 함수 호출 배열 첨자 구조체/공용체 멤버 접근 포인터로 구조체/공용체 멤버 접근 복합 리터럴 → 2 ++ -- +x -x ! ~ (자료형) *x &x sizeof 증가 연산자 감소 연산자 단항 덧셈(양의 부호) 단항 뺄셈(음의 부호) 논리 NOT 비트 NOT 자료형 캐스팅(자료형 변환) 포인터 x 역참조 x의 주소 자료형의 크기 ← 3 * / % 곱셈 나눗셈 나머지 → 4 + - 덧셈 뺄셈 → 5 > 비트를 왼쪽으로 시프트 비트를 오른쪽으로 시프트 → 6 = 작음 작거나 같음 큼 크거나 같음 → 7 == != 같음 다름..
· c언어
자료형 (데이터 타입) 데이터 타입이란 정수, 실수, 불린(boolean)형 등의 여러 종류의 데이터를 식별하는 분류로서 더 나아가 해당 자료형에 대한 기능과 값, 해당 자료형에서 수행할 수 있는 명령(연산)들, 데이터의 의미, 해당 자료형의 값을 저장하는 방식을 결정합니다. 따라서 우리는 자료형으로부터 값의 범위(예를 들어 정수형은 -32768 ~ 32767 등), 연산의 종류(+, -, *, ...)등을 알아낼 수 있습니다. 데이터 타입을 사용함으로써, 실세계의 대상들을 수월하게 표현할 수 있고, 또한 컴퓨터가 메모리공간을 효율적으로 사용할 수 있으며, 타입 불일치 등의 오류를 사전에 알고 예방할 수 있습니다. 데이터 타입의 종류 데이터 타입의 종류에는 기본 데이터 타입과, 유도된 데이터 타입이 있습..
· c언어
C언어에서 문자열을 출력하기 위해서 기본적으로 printf() 함수를 사용합니다. 사용 예시는 다음과 같습니다. #include int main() { printf("광고 눌러주세요"); printf("구글 광고가 돈 더 많이 줍니다.. :)"); return 0; } 이에 대한 출력 결과는 다음과 같습니다. 그런데 아마도 위의 출력처럼 줄바꿈 없이 출력되는 것을 원하는 사람은 없을 것입니다. 그렇다면 줄바꿈을 하기 위해서는 어떻게 해야 할까요? 제어문자를 사용해서 줄바꿈을 할 수 있습니다. 제어 문자 C언어는 다음과 같은 여러 제어문자를 가지고 있습니다. 제어 문자 설명 \t 탭(tab)위치만큼 이동합니다. \n 줄바꿈을 실행합니다. \b 한 칸 왼쪽으로 이동합니다. \r 맨 앞으로 이동합니다. \a ..
말 랑
'c언어' 카테고리의 글 목록 (3 Page)