최신 글
-
DataBase
(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 Language
[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 Language
[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 Language
[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 Language
[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 Language
[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