C언어/개념 및 정리

코딩하는 대학생에서 개발자까지
(C언어) 동적할당 malloc calloc realloc 차이 및 설명
C언어에서 동적 할당을 사용하는 이유는 간단하다 시간을 단축하기 위해 사용하는 것이다. 1 2 3 4 5 6 7 8 9 #include #include int main() { int num; scanf("%d", &num); int card[num] = { 0, }; return 0; } cs 이렇게 num이란 숫자를 입력받았을 때 크기가 num인 배열을 만들고 싶다. 하지만 c언어에서는 이러한 배열 선언이 안돼서, 항상 입력할 수 있는 최댓값을 배열의 크기로 정하긴 했다. 그렇게 되면 입력한 값이 작아도 시간은 오래 걸리게 되는 일이 발생했다. 1. malloc 1 2 3 4 5 6 7 8 9 #include #include int main() { int num; scanf("%d", &num); in..
C언어 스택 <자료구조> (C언어 C11 C99)
스택을 영어로 설명하면 first in last out이라고 한다. 나는 이 말을 듣자마자 공병이 떠올랐다. ptsd와 함께. 쓸데없는 소리는 여기까지 하고, first in last out을 알아듣게 설명하자면 먼저 입력을 한 값이 나중에 나오고, 나중에 입력된 값이 먼저 나온다는 소리다. 출력할 때는 위에서부터 하고 입력할 때는 쌓아 올리는 형식으로 한다는 말이다. ㅇ스택 문제를 풀 때는 4개의 함수가 필요하다. - 공백상태를 검사하는 함수 - 포화상태를 검사하는 함수 - 삽입하는 함수 - 배출하는 함수 공백상태를 검사하는 함수를 설명하겠다. top이란 변수를 호출했다. top은 삽입을 하면 1씩 커지고, 배출을 하면 1씩 작아지는 변수다. 그러므로, 공백상태를 검사하는 함수에서 top이 0보다 작으..
C언어 구조체 정리 (C언어 C11 C99)
구조체 , 구조체 포인터, TYPEDEF에 대해 설명하겠다. 1. 구조체는 밑에 있는 그림처럼 키워드 그리고 구조체 이름을 통해 정의한다. 그리고 안에 필요한 정보가 담긴 구조체의 멤버 변수를 적는다. 그 후, 메인 함수에서 구조체 변수를 생성후 (구조체변수.구조체의 멤버 변수)이런 식으로 호출을 한다. 1 2 3 4 5 6 7 int main() { struct book harry; harry.title = "harry potter"; harry.author = "J. K. Rowling"; harry.price = 18500; } Colored by Color Scripter cs 2. 구조체 포인터 구조체 포인터는 구조체와 같이 구조체를 정의 한뒤, 메인함수에서 달라진다. 메인함수에서 구조체 변수를..
C언어 선택정렬 정리 (C언어 C11 C99)
선택 정렬의 개념: 가장 작은 것을 골라서 맨 앞으로 보내는 알고리즘 1부터 10까지의 숫자가 저장된 배열을 오름차순으로 출력하는 문제를 풀면서 선택 정렬을 설명하겠다. 먼저 소스코드이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include int main() { int i, j, min, index, temp; int array[10] = { 2,4,6,8,9,7,5,3,1,10 }; for (i = 0; i
(C언어) 문자열 함수의 모든 것
1. 문자 입출력 함수 문자 입출력 함수는 함수 반환형이 int형이다. 그러므로 문자도 정수로 저장된다. int형으로 하는 이유는 EOF(end of file) 문자를 체크하기 위해서이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 #include int main() { int ch; while (1) { ch = getchar(); if (ch == EOF) break; putchar(ch); } return 0; } cs 2. 문자열 입출력 함수 띄어쓰기가 포함된 한 줄을 받고 싶을 때는 gets()를 사용해야 한다. 출력할 때는 puts()를 사용하면 된다. 1 2 3 4 5 6 7 8 9 #include int main() { char address[100]; printf("주소를 입력..
C언어 카운팅 정렬 단순정리 & 백준(S5) 수 정렬하기 (C언어 C11 C99)
정렬 알고리즘 중 가장 빠른 정렬. 정렬 함수의 속도는 O(N)이다. 지금까지 다른 함수들은 데이터를 위치를 바꿔가며 정렬했지만, 정렬 함수는 데이터의 크기를 기준으로 개수만 세면 되기 때문에 다른 정렬들보다 시간을 많이 아낄 수 있다. 1 2 3 4 5 6 7 8 9 for (int a = 0; a max) { max = numbers; } countings[numbers - 1]++; } cs 이렇게 입력을 하면서 바로 데이터의 크기를 기준으로 갯수를 셀 수 있다. 개수를 센 다음에는 밑에 나와있는 코딩처럼 데이터 크기를 저장한 배열을 출력하면 된다. 1 2 3 4 5 6 7 8 for (int a = 0; a
코딩하는_대학생
'C언어/개념 및 정리' 카테고리의 글 목록