본문 바로가기

프로그래밍

storage class storage class 라는건 변수의 생성,소멸의 시기, 장소,위치를 결정하는 예약어이다. 보통 생략할 때가 많은데, 이런 경우에는 auto 라는 storage class 로 설정된것이다. 형식> storage class 자료형 변수명. -> auto float fsum; 종류> auto - 메모리에서 생성되며, 지역변수이다. 쓰레기값이 초기값으로 들어가며, 함수안에서만 선언가능. 그 함수에서만 사용가능하게 된다.즉 지역변수라는 얘기다. register - 레지스터에 생성되고, 역시 지역변수. static - 메모리에 생성되지만, 전역,지역이 가능하다. 초기화가 자동으로 되기때문에 신경쓰지 않아도 되고, 함수밖에서 선언하면 전역, 함수내에서 선언하면 지역변수가 된다. extern - 역시 메모리에서 생.. 더보기
포인터 C에서 가~~~장 중요한 개념중하나. 포인터 변수는 주소를 값으로 갖는 변수를 말하는데, * 을 이용해서 선언하게 된다. 즉, 주소값이 변수가 된다. 예> int *p; float *fp; ------------------------------------------------- #include main() { int a,num,*p; num=100; p=# a=*p; printf("num = %d, a = %d",num,a); } 이럴경우 p에는 num의 주소가 들어가게 되고, a에는 p주소에 해당하는 값, 즉 100이 들어가게 된다. ------------------------------------------------- #include main() { char *p; p = "HoonyG"; .. 더보기
배열 C에서는 배열은 1차원배열, 다차원배열이 있다. 구현은 간단하다. 자료형 이름[첨자] 형식이다. int a[10]; 이런형식을 이용해서 정의를 내리고 사용한다. 2차원배열을 구현할 경우 이름[행번][열번] 형식이 된다. 배열을 사용할때 포인터 이용을 같이 하는 경우가 많다. 배열 자체가 데이터를 연속적으로 저장하기 때문에 포인터를 이용한 접근이 쉬워진다. 배열명자체가 시작명을 가지는 포인터상수이기 때문이기도 하다. int a[10]; 일경우 a 가 100 번지에 저장된다면, int *pt_a; pt_a=a; 로 구현하면, pt_a = &a[10] 의 의미가 된다 더보기
조건.IF.SWITCH,FOR,WHILE --------------------------------------------------------------- IF(조건1) { } else if(조건2){ } else { } 예> #include #include main() { int a,b; char mode; puts("enter the type. E : easy, N : normal, I : insane") gets(mode); if(mode=='E') { puts("Easy mode started"); }else if(mode=='N'){ puts("Normal mode started"); }else if(mode=='I'){ puts("Insane mode started"); } getch(); } ----------------------.. 더보기
문자입출력 입력함수 gets() 문자열입력. 엔터키에 의해 입력. 공백가능 getch() 한개 문자입력. 바로입력. getche() 한개문자.바로입력.입력된내용나타남. getchar() 한개문자.엔터키입력. 출력함수 putchar() 한개문자출력. puts() 문자열출력.행이 자동으로 바뀜. 예> #include void main() { char name[20], telno[10]; puts("What's your name?); gets(name); puts("What's your telephone number?"); gets(telno); printf("%s 's telephone number is %s",name,telno); getch(); } 더보기
연산자들 C에서는 논리,관계,증감,산술연산자가 존재한다. 이는 말그대로 논리(참거짓을판별),관계(대소),산술(+-*/)증감(++--)을 한다. ---------------------------------- * 곱하기 / 나누기 + 더하기 - 빼기 % 나머지 ++ 증가1 -- 감소1 ---------------------------------- >>, 더보기
입력받아들이기~~ scanf() scanf() - 이넘은 데이터 형식에 따라서 값을 읽어들이는 함수이닷. 형식. scanf("변환문자...",인수..); ex> scanf("%d %f %c %s",&nint,&nfloat,&ctag,tags); 여기서 주요점은 하나의 문자는 &연산자를 이용하지만, 문자열같은 경우 &기호를 생략한다. 포인터라 생략가능. 문자열 마지막에는 null문자가 들어가게된다. 예> #include void main() { int a,b,sum; char name_a[10],name_b[10]; printf("input a's name?"); scanf("%s\n",name_a); printf("input b's name?"); scanf("%s\n",name_b); printf("input a's score?");.. 더보기
출력하라~~~!!!! printf() printf() 이넘은 C 에서의 표.준.입.출.력.함.수 이다. 이넘을 이용하기 위해서는 기본적으로 stdio.h 파일을 인클루드 시켜야 한다. 기본형식 printf("출력양식....",인수,...); 여기서 변환문자와 인수는 일대일대응되어야 함. 즉 인수의 자료형과 문자의 자료형이 일치해야함. %d : 10진수 %o : 8진수 %x : 16진수 %ld : long type 10진수 %lo : long type 8진수 %lx : long type 16진수 %u : unsigned 10진수 %c : one char 이외에 제어문자가 있는데, 이는 특정 출력을 나타낸다. \b : back. 한칸앞으로 \f : forward.한페이지이동 \n : new. 다음줄 처음 \r : 그줄 처음 \t : tab. 탭.. 더보기
변수~~ 그넘의 원수여. 프로그래밍에서의 가장~~~ 기초적인것이자 복잡한놈. 내가 원한는걸 만들어 줄수 있는 것. 남이만든걸 볼때... 4차원... 아니 10차원을 경험할수도 있는... 원인이 되는넘... !!!!!! 꼭 주석처리는 하자!!! 후임을 위해서... 나자신이 귀찮아 지지 않기위해서도...ㅋㅋ ------------------------------------------------------------ 변수는 말그대로 변하는 수!!! 지정된 값을 가지고 처리과정에서 변해서 결과값을 가지게 된다. 이데이터가 프로그램을 움직이게 한다. 가장 중요한건 naming~!!!. 누구라도 금방 알아볼수 있도록 쉽게지아야 함. * 대소문자 구분해서 * 예약어는 x * 첫번째 글자는 영문자 or _ 로 시작한다 * 변수명은 영문자,숫자.. 더보기
C언어 구조 % 정말 예~~~ 전에 많이 보던 화면 ㅋㅋㅋ% C 는 main() 함수를 기본으로 한다. main()함수안에 {}로 시작과 끝을 구분한다. [기본구조] /* 주석문*/ #include /* standard in out header file include. 선행처리기. main() { 함수처리 } 이런 형식의 구조를 가지고 수행되어진다. [C언어 기본] *대소문자 구분을 한다. *main()함수가 꼭 필요하다. 없으면 않되.... * 함수는 꼭 {}로 묶어서 구분 * ; 로 문장의 끝을 맺는다. * 주석은 /* */로 묶음. 소스파일 : *.c 오브젝트파일 : *.obj 실행파일 : *.exe [C언어특징] /* 알려진특징들... * 이식성 양호 * 인터페이스용이 * H/W 제어 용이 # 다른건 몰라도 .. 더보기
퀵소트 소스,Quick Sort source.참고 /*--------------------------------------------------------------------------*/ /* Purpose: qsort */ /*--------------------------------------------------------------------------*/ static void swapmem(char *a, char *b, size_t size) { register char t; register int i; for (i = 0; i < size; ++i,++b,++a) { t = *a; *a = *b; *b = t; } } /* qsort() 함수는 빠르게 정렬을 시킵니다. nmemb를 정렬시킬 위치를 나타냅니다. base는 정렬할 첫번째 요.. 더보기