본문 바로가기

C언어24

C언어 - 재귀 함수 (recursion) 이제 저번 동적할당에 이어서 재귀 함수에 대해 알아보겠습니다. 재귀함수는 동적할당처럼 자료구조에서 자주 쓰이는 것 같습니다. 재귀함수 재귀함수 : 함수 내에서 자신을 다시 호출 형태 ex) 반환형 함수이름(매개변수) { 함수이름(); } void Add() { Add(); } 우선 형태는 위와 같습니다. 재귀 함수가 이름은 어려워 보이지만 실제로 보면 그저 함수 내부에서 자신의 함수를 다시 호출하는 것 뿐입니다. 이때 잘 못하면 while문 처럼 무한 반복이 일어날 수 있으니 조심해야 합니다. 다음 코드를 봐보겠습니다. #include void Add() { printf("하이요\n"); Add(); } int main() { Add(); return 0; } 위 재귀 함수를 보면 함수가 계속 자신을 호.. 2023. 6. 3.
C언어 - 동적 할당 (malloc) 지난번 구조체에 이어서 동적할당에 대해 알아보겠습니다. 동적할당은 이제 자료구조 들어갈 때 배우는 것 같습니다. 동적할당 동적할당 : 중간에 메모리 공간 할당 받고, 원하는 시점에 해제하는 방식 형태 ex) 할당) #include 저장할 공간의 자료형* 변수명; 변수 = (주소를 저장할 변수의 자료형)malloc(크기(byte)); #include double* ETH; ETH = (double*)malloc(8); 해제) free(변수); free(ETH); 크기 팁: sizeof(자료형) * 원하는 개수 ETH = (double*)malloc(sizeof(double)*2); 공간 크기별 접근법 ex) 자료형 크기 하나일때) *변수 *ETH 자료형 크기가 여러개일때) 변수[인덱스] ETH[0] , E.. 2023. 6. 1.
C언어 - 구조체 저번 함수 포인터에 이어서 구조체에 대해 알아보겠습니다. 구조체는 체감상 다른 언의 객체 같은 느낌입니다. 구조체 구조체는 여러개의 멤버들을 모아 하나의 새로운 자료형을 만드는 것입니다. 정의 형태 ex) 기본 구조체 정의) struct 구조체명 { 멤버; }; struct coin { double BTC; double ETH; double XRP; }; 별칭 구조체 정의) typedef struct 구조체명 { 멤버; }; typedef struct coin { double BTC; double ETH; double XRP; }co; 익명 구조체 정의) typedef struct { 멤버; }별칭; typedef struct { double BTC; double ETH; double XRP; }co; .. 2023. 5. 30.
C언어 - 함수 포인터 저번 변수 범위, 함수, 포인터에 이어 이번에는 함수에 포인터를 활용해보겠습니다. 함수 포인터 함수에서 포인터를 활용할 때 보통 주소를 매개변수로 넘겨주게 됩니다. 먼저 형태를 봐보겠습니다. 함수 형태 ex) 반환형 함수명(포인터 매개변수) { 종속절; *매개변수; } void coin(double* ETH) { (*ETH) += 1000; 함수 쓸 때 변수 선언; 함수명(변수주소); double ETH; coin(&ETH); 위와 같은 형태를 갖게 됩니다. 이렇게 되면 함수에서 그 변수의 주소를 활용할 수 있게 됩니다. 활용하기 1 먼저 저번 시간에 사용했던 코드를 가져와 활용해보겠습니다. #include void coin(double ETH) { ETH += 1000; } int main() { do.. 2023. 5. 28.