목록C언어 (9)
모노산달로스의 행보
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/S7XHL/btsGNcSF8lH/YTxgnzC8z7ILeXUYughw00/img.png)
C programming -큐(Queue) 리눅스 환경에서 네트워크 프로그래밍을 공부하기 위해서 C언어를 다시 복습해야 할 필요성을 느꼈습니다. 따라서 이번 기회에 배열부터 전처리기까지 내용들을 정리하겠습니다. 큐란? 스택은 선형 자료구조로서 First In First OUT (FIFO) 규칙을 따릅니다. 즉, 처음에 들어온 요소가 가장 먼저 제거된다는 뜻입니다. #define MAX 10 int queue[MAX]; int front, rear; void put(int k) { // rear가 한계를 넘지 않았으면 queue[++rear] = k; } int get() { // 큐가 비어있지 않으면 return queue[front++]; } 큐의 기본적인 구현은 위와 같습니다. 스택과 마찬가지로 배열..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bQuE7q/btsGMGNgF2A/LQ05hPsxbjNATmRHh4q9P1/img.png)
C programming -스택(Stack) 리눅스 환경에서 네트워크 프로그래밍을 공부하기 위해서 C언어를 다시 복습해야 할 필요성을 느꼈습니다. 따라서 이번 기회에 배열부터 전처리기까지 내용들을 정리하겠습니다. 스택이란? 스택은 선형 자료구조로서 Last In First OUT (LIFO) 규칙을 따릅니다. 즉, 마지막에 들어온 요소가 가장 먼저 제거된다는 뜻입니다. 마치 접시들이 쌓여있는 모습이라고 생각하면 됩니다. #define MAX 10 int stack[MAX]; int top; int push(int t) { if (top >= MAX-1) { printf(“Stack overflow\n”); return -1; } stack[++top] = t; return t; } int pop() { ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bo5kQQ/btsGHGS200i/9kagX3j9KUTzkApukZjJSK/img.png)
C programming - 구조체와 열거형 리눅스 환경에서 네트워크 프로그래밍을 공부하기 위해서 C언어를 다시 복습해야 할 필요성을 느꼈습니다. 따라서 이번 기회에 배열부터 전처리기까지 내용들을 정리하겠습니다. 구조체란? 구조체가 대체 무엇일까요? 사전적으로는 하나 이상의 변수를 묶어 그룹화 하는 사용자 정의 자료형을 의미합니다. 위 사진 처럼 Cat 이라는 구조체가 name과 breed 그리고 age이라는 멤버 변수를 가진 것 처럼 말이죠. Java와 같은 언어에서 사용하는 Class와도 유사한 점이 존재합니다. 구조체의 목적은 데이터를 하나로 모아 구조적으로 만들어 데이터 참조를 용이하게 하는 것입니다. 예를 들어 고양이의 이름을 참조하는 함수가 100개 정도 있다고 생각해봅시다. 만약 여기서 고양..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Glln4/btsGGOK5VsK/zslsSQPUINwZYVqka4qkDk/img.png)
C programming - 표준 함수 리눅스 환경에서 네트워크 프로그래밍을 공부하기 위해서 C언어를 다시 복습해야 할 필요성을 느꼈습니다. 따라서 이번 기회에 배열부터 전처리기까지 내용들을 정리하겠습니다. 표준함수란? 표준함수에 대해서 들어보셨나요? 그 의미는 정확히 몰라도 우리는 이미 그것을 여러 번 사용하고 있었습니다. 표준함수란 C언어 라이브러리에 저장되어 있어 사용자가 헤더파일을 통해 불러와 사용할 수 있는 함수입니다. 즉, 사용자가 필요한 기능이 미리 지정되어 있어 편하게 가져다 쓸 수 있는 것들입니다. 이번 포스트에서는 간편하게 대표적인 표준함수들에 대해서 소개하겠습니다. gets() 함수와 puts() 함수 헤더파일 stdio.h에 속하는 두 함수는 문자열을 입력하고 출력하는 역할을 수행합..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bVq0Uh/btsGwsajtGw/uGHtgOIJoQSHrnPBeL71w0/img.png)
C programming - 문자열 포인터 리눅스 환경에서 네트워크 프로그래밍을 공부하기 위해서 C언어를 다시 복습해야 할 필요성을 느꼈습니다. 따라서 이번 기회에 배열부터 전처리기까지 내용들을 정리하겠습니다. 문자열이란? C언어에서 문자 상수(Character)란 작은 따음표 내에 포함된 하나의 문자를 의미합니다. 만약 여러개의 문자를 한 번에 표현하고 싶다면 어떻게 해야 할까요? 문자 상수를 여러개 저장하는 배열은 어떨까요? char array[] = {'A', 'B', 'C', 'D'}; 문자를 저장하는 배열을 만들었습니다. 배열의 요소인 A B C D 각각의 값에 접근하는 것이 가능합니다. 지금부터 공부할 문자열 또한 이러한 문자 배열과 동일하게 동작합니다. 우리는 이미 문자열(String)을 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/SzDPC/btsGusHZmjO/2qkDnRJNpelVGC5VbK4HGk/img.png)
C programming - 포인터 배열 리눅스 환경에서 네트워크 프로그래밍을 공부하기 위해서 C언어를 다시 복습해야 할 필요성을 느꼈습니다. 따라서 이번 기회에 배열부터 전처리기까지 내용들을 정리하겠습니다. 포인터와 1차원 배열 #include int main(void) { int array[3]={10, 20, 30}; int *p = NULL; p = array; printf("%x %x %x\n", p, p+0, &p[0]); printf("%x %x\n", p+1, &p[1]); printf("%x %x \n", p+2, &p[2]); printf("%d %d %d\n", *p, *(p+0), *(&p[0])); printf("%d %d\n", *(p+1), *&p[1]); printf("%d ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bYK4QY/btsGjngoJ18/PhaPS2KJhFPtzvJwVkK1X1/img.png)
C programming - 2차원 배열 리눅스 환경에서 네트워크 프로그래밍을 공부하기 위해서 C언어를 다시 복습해야 할 필요성을 느꼈습니다. 따라서 이번 기회에 배열부터 전처리기까지 내용들을 정리하겠습니다. 다차원 배열이란? 다차원 배열은 2차원 이상의 배열을 일컫는 용어입니다. 즉, 하나의 배열이 다른 배열을 가지고 있는 형태입니다. 처음 다차원 배열을 접하신다면 이해하기 힘든 개념으로 생각됩니다만, 이번 기회에 확실하게 정리하고 넘어가면 좋을 것 같습니다. 해당 포스트에서는 2차원 배열을 중심으로 살펴보겠습니다. 2차원 배열의 선언과 초기화 int array[4][3]; 기존 배열과 선언 방법은 크게 다르지 않습니다. 자료형과 배열의 이름 그리고 배열의 크기를 선언합니다. 여기서 주목할 점은 배열의..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b1ICJO/btsGi1RNRME/i0NBUuffbnoDUEF73JZrb0/img.png)
C programming - 1차원 배열 리눅스 환경에서 네트워크 프로그래밍을 공부하기 위해서 C언어를 다시 복습해야 할 필요성을 느꼈습니다. 따라서 이번 기회에 배열부터 전처리기까지 내용들을 정리하겠습니다. 배열이란? 배열의 정의는 아래와 같습니다. 같은 자료형을 가진 연속된 메모리 공간으로 이루어진 자료구조입니다 같은 자료형을 가진 변수들이 여러 개 필요할 때 사용합니다 많은 양의 데이터를 처리할 때 유용합니다 쉽게 정리하자면 같은 자료형의 변수들을 하나로 묶어놓은 것을 배열이라고 부릅니다 배열의 선언 방법은 다음과 같습니다. int array[10]; 자료형과 배열의 이름 그리고 배열의 길이를 선언합니다. 위 예시는 10의 길이를 가지는 array라는 이름의 int 자료형 배열입니다. 배열 요소의..