본문 바로가기

=== 전체보기 ===

(ORACLE) PROCEDURE 에서 원하는 데이터를 찍어보자! CREATE OR REPLACE PROCEDURE BookInsertOrUpdate( myBookID NUMBER, myBookName VARCHAR2, myPublisher in VARCHAR2, myPrice in NUMBER ) AS mycount NUMBER; BEGIN DBMS_OUTPUT.DISABLE; DBMS_OUTPUT.ENABLE; SELECT count(*) into mycount FROM Book WHERE bookname LIKE myBookName; DBMS_OUTPUT.PUT_LINE(mycount); IF mycount!=0 THEN DBMS_OUTPUT.PUT_LINE('if문 들어옴!'); UPDATE Book SET price = myPrice WHERE bookname..
[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]비트연산자란 무엇인가? ◇ 비트 연산자란 데이터를 2진수로 인식하여 연산을 수행하는 연산자입니다. 비트연산자 설명 & (and) 연산대상과 피연산자의 비트가 모두 1 일때 1이 됩니다. ex) 1111 & 1010 == 1010 | (or) 연산대상과 피연산자의 비트 중 하나라도 1이면 1이 됩니다. ex) 1001 | 0100 == 1101 ^ (exclusive or || xor) 연산대상과 피연산자의 비트가 다를 경우 1이 됩니다. ex) 1010 ^ 1000 == 0010 ~ (complement) 비트를 반전시킵니다. ex) ~1000 == 0111 2 == 0010 >> 오른쪽으로 비트를 이동시킵니다 ex) 0010
[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..