본문 바로가기

C

[C] 함수 포인터란 무엇인가? □ 함수 포인터란? ▷ 함수의 주소를 가리키는 포인터로 함수를 호출하거나 매개변수로 보낼 때 사용합니다. □ 함수 포인터의 형태 ▷ (반환 타입) (*함수포인터 명)(매개변수1, 매개변수2, …); Ex) int (*fp)(int, int); □ 함수 포인터의 호출 ▷ 일반적인 함수 호출 int sum(int fir, int sec){ return fir + sec; } int main(void){ printf("%d\n", add(10,5)); } ▷ 함수포인터를 사용한 호출 int sum(int fir, int sec){ return fir + sec; } int main(void){ int (*fp)(int, int); fp = add; printf("%d\n", fp(10,5); } ▷ 함수포인터..
[C] 싱글 링크드 리스트(Single Linked List) □ 싱글 링크드 리스트란? ▷ Head노드를 기준으로 메모리를 동적할당하여 노드를 추가하며 데이터를 저장하고, 각 노드들은 데이터공간과 다음 노드의 주소를 가리키는 공간으로 구성되어있습니다 □ 싱글 링크드의 메모리구조 ▷ stack영역의 포인터가 동적할당(heap영역에 생성)한 노드를 가리키는 구조로 되어있으며, heap영역의 각 노드들은 다음 노드를 가리키고 있습니다. □ 싱글 링크드 리스트의 구현 #include #include //TODO 양쪽 끝에 더미노드를 만듦 typedef struct _list { int key; struct _list* next; }List; //구조체 선언 List* head, * tail; void init_list(void) { head = (List*)malloc(..
[C] 반복문에 대해서 알아보자! □ 반복문이란? ▷어떠한 문장이나, 동작들을 유한하거나 무한정으로 반복할 때 사용합니다. □ While문 while(조건){ //동작시킬 문장 } ▷ while문은 조건이 참일 동안 반복합니다. ▣ 예시 main(){ int a; a = 10; while (a > 0) { //a가 0보다 클 동안만 동작합니다 printf("%d\n", a); a--; } } ▷ 결과 10 9 8 7 6 5 4 3 2 1 □ for문 for(초기화값; 조건문; 증감값;){ //동작시킬 문장 } ▷ for문은 먼저 초기화를 한 후 조건문을 확인 후 참이면 동작합니다. 동작 후에는 값을 증감한 후 다시 조건을 체크합니다. 이렇게 조건이 참일동안 실행됩니다. ▣ 예시 main() { int a; for (a = 10; a > ..
[C] 함수 프로토타입이란 무엇일까? □ C에서 함수를 작성하였는데 warning이 발생하거나 실행이 안되는 경우가 있습니다. main() { int fir, sec, res; fir = 5; sec = 3; res = sum(fir, sec); printf("%d", res); } int sum(int a, int b) { return a + b; } ▷ warning C4013: 'sum'이(가) 정의되지 않았습니다. extern은 int형을 반환하는 것으로 간주합니다. □ 이런 경우 정의한 함수를 main 위로 올려주거나, main 위에 함수를 선언해주면 됩니다. int sum(int a, int b) { return a + b; } main() { int fir, sec, res; fir = 5; sec = 3; res = sum(f..
[C] Enum(열거형)에 대해 알아보자 ◎ enum(열거형)이란? ▷ 이름을 갖는 정수형 상수들을 나열하여 편리하게 사용할 수 있도록 하는 것으로 기재된 순서에 따라 0부터 1씩 증가하게 됩니다. ex) enum 열거형 이름 { A, B, C, D }; ◇ 사용 예시 enum color{ RED, BLUE, ORANGE, GREEN, WHITE, BLACK }; main(){ printf("%d\n", RED); printf("%d\n", WHITE); } ▷ 첫번째인 RED는 0이 나오게 되고, 다섯번째인 WHITE는 4가 나오게 됩니다. ◇ 사용 예시2 enum color{ RED=20, BLUE, ORANGE, GREEN, WHITE, BLACK }; main(){ printf("%d\n", RED); printf("%d\n", WHIT..
[C] 함수 포인터 ▷ 함수 포인터란? 함수의 주소를 담는 포인터 ex) 자료형 (*함수포인터명)(매개변수형, ....); ◇ 일반적인 함수 호출 int add(int a, int b){ return a + b; } main(){ printf("%d\n", add(10, 5)); } ◇ 함수포인터를 이용한 호출 int add(int a, int b){ return a + b; } main(){ int (*fp)(int, int); fp = add;; printf("%d\n", fp(10, 5)); } ◇ 형식이 같은 다양한 함수를 호출할 수 있다. int add(int a, int b)[return a + b;} int sub(int a, int b)[return a - b;} int mul(int a, int b)[ret..
(C++)템플릿을 사용한 스택/큐 구조 프로그램 템플릿(제네릭)을 이용한 큐 스택 구조 표현입니다.1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591..
(C++) String 함수 만들기! String 함수를 만들어보았습니다. (Mystring 코드) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157..