C, C++ 5

동적 할당, 구조체

일반적인 배열과 변수는 메모리 안에 변수가 할당된다. 이는 코드가 컴파일 될 때 크기가 정해지기 때문에, 이후 크기를 런타임에 추가적으로 할당 하기 위해서는 동적 할당이 필요하다.동적 할당에는 3가지 방법이있다.-malloc() 가장 자주 사용되는 동적할당 방법이고, 원하는 자료형의 메모리를 직접할당하는 방식이다.int *arr = (int *)malloc(n*sizeof(int));(여기서 사용되는 sizeof는 자료형이나 배열의 크기를 리턴한다. 그러나 배열은 기본적으로 자료형의 크기*전체 수이다.)-calloc() 메모리를 원하는 개수 만큼 정확히 할당하는 방법이다. 이 방법은 malloc(n*sizeof(int))일 경우 calloc(n, sizeof(int))와 같다.int *arr2 = (in..

C, C++ 2025.04.15

재귀함수, 포인터

재귀 함수는 함수 내부에서 자기 자신을 재귀적으로 호출하는 함수이다. 예)void hello(int n){ if (0 이 함수에서는 n이 0이 될때 까지 재귀적으로 hello를 호출한다.재귀 함수의 대표적인 예에는 팩토리얼과 피보나치 수열이 있다.https://swchung09.tistory.com/38 27433번, 팩토리얼 2https://www.acmicpc.net/problem/27433이 문제는 정수 N을 줄때, N 팩토리얼을 출력하는 문제이다.팩토리얼은 1부터 N까지의 곱을 의미한다. 따라서 5 팩토리얼이면, 5*4*3*2*1=120이다.이 코드를 짜기 전, C에서blog.aiswstudio.comhttps://swchung09.tistory.com/39 10870번, 피보나치 수 5ht..

C, C++ 2025.04.14

배열, 변수(전역, 지역), 함수

배열은 다음과 같은 형태로 선언 된다.int arr[12] = {0,};여기서 int는 배열에 있는 값의 타입이고, 12는 배열의 길이이다. 그리고 arr은 배열의 이름이다.뒤에 있는 {0, }는 배열을 0으로 채우라는 의미이다.(또는 {0, 1, 2, 3}처럼 지정할 수도 있다.)지역 변수는 main안 에서 사용하는 변수처럼 어떤 중괄호 안에서 선언된 변수이다. 이는 변수가 선언된 중괄호 내에서는 호출할 수 있지만, 중괄호가 닫히면 호출할 수 없다.int main(){ int test = 0; //여기까지는 test를 호출할 수 있음}//여기 부터는 test를 호출할 수 없음반대로 전역 변수는 다른 함수에서도 호출할 수 있으며, main함수 밖 #include를 사용하는 부분 쪽에서 주로 선언 된..

C, C++ 2025.04.08

C 기본 문법

C언어는 역사 깊은 프로그래밍 언어이고, 저사양의 기기(임베디드 환경)에서도 잘 작동하는 언어이다. 그리고 C는 연산 속도가 다른 언어보다 월등히 더 빠르다.C 자료형정수형int실수형(32비트)float실수형(64비트)double문자형char문자열char[]이 중 int와 double은 자주 사용된다.C 연산자 - 사칙 연산자더하기+빼기-곱하기*나누기(몫)/나누기(나머지)%C 연산자 - 비교 연산자A랑 B가 같다A == BA랑 B가 다르다A != BA는 B보다 크다A > BA는 B보다 작다A A는 B이상이다A >= BA는 B미만이다A C 연산자 - 복합 대입 연산자사칙 연산자대입 연산자A = A + BA += BA = A - BA -= BA = A * BA *= BA = A / BA /= BA = A %..

C, C++ 2025.04.06

포멧 문자

앞으로 영원히 포멧 문자를 정리하지 않을 것 같아서 한번 정리해봤다.타입포멧 문자출력 예시8진 정수형(int)%o153310진 정수형(int)%d123416진 정수형(int)%x4d2실수형(float)%f1234.000000실수형(double)(입력받을 때 외에는 거의 사용되지 않는다.)%lf1234.000000문자형(char)%cA문자열(std::string)%sABCD또한 실수형 포멧에 경우 %.2f처럼 가운데 .자릿수를 적으면 해당 자릿수까지 출력해준다.예) printf("%.2f", 0.1234); -> 0.12

C, C++ 2025.04.02