목록C \ C++/C 개념 정리 (8)
archive
exit()함수는 stdlib.h 헤더파일을 include하여 사용. commit과 같이 현재 C언어로 작성된 프로세스내 파일 입출력 중인 것을 저장 + 함과 동시에 프로세스를 모두 종료하며 운영체제에게 권한을 넘긴다. exit(0)은 '정상종료', exit(1)은 '에러메시지 종료' (각각 EXIT_SUCCESS, EXIT_FAILURE 로 미리 정의되어 있기 때문) return 은 일반 함수 속에서 return 문을 사용하면 그 함수만 종료되지만, main() 함수 속의 return 문은 프로그램 전체를 중지시킵니다. main() 함수에서 return하는 것 = exit(0) 같다. 둘의 차이는 exit()함수는 바로 프로세스 종료. return 은 뒤 문장을 실행하며 종료. C에서 exit() 이라..

goto문은 지정된 라벨을 프로그램 제어를 통해 전송이 가능하다 1. goto문 goto label; ... ... ... ... label: statement; -label은 변수리고 goto문이 실행하면 label 변수로 이동하고 이어 등장하는 코드를 실행 2. goto 순서도 3. goto를 피해야하는 이유 - 버그 발생 확률이 높아 실행하기 어려운 코드가 생성될 수 있음 ++요약) goto label; 이라고 적어두면 label: 이라고 해 놓은 곳으로 가게 해 주는 장치
C언어에서는 그러한 프로그래머를 위해서 난수생성함수를 제공하고 있습니다. 바로 rand라는 함수이지요. 외우기도 쉽네요. rand(om)으로 기억하면 되니까요. rand rand함수를 사용하기 위해서는 stdlib.h 헤더파일을 include해야합니다. rand함수는 0부터 RAND_MAX까지 범위까지 난수를 생성합니다. 함수 원형을 같이보시죠. int rand(void); 보시는 바와 같이 rand함수는 int형을 반환하게 됩니다. 아하, 그러면 rand함수를 쓰게 되면 랜덤인 정수형이 나오겠구나. 알 수 있죠? 이제 이 함수를 이용해서 1부터 100까지 정수 중 10개의 수를 랜덤하게 뽑아내는 프로그램을 짜보도록 하지요. #include #include int main() { int i; for (i..
C에서 Quick Sort인 qsort함수 사용하기 기본적으로 stdlib.h에서 Quick Sort 함수인 qsort 함수를 제공해주며 아래와 같습니다. void qsort(void *base, size_t nel, size_t width, int(*compare)(const void *, const void *); -base) 배열의 각 원소들의 총 수 -nel) 배열의 각 원소들의 총 수 -width) 배열에서 원소 하나의 크기 -* compare) 비교를 수행할 함수 포인터, C언어 안에서는 함수를 선언하고 구현한 뒤 다음처럼 포인터로 특정 함수를 지정할 수 있음 4번째 인자에 대해서 조금 더 자세히 설명하면 비교함수 내부에는 1, 0 , -1중에 하나를 반환해야합니다. 만약 오름차순으로 정렬을 ..
string.h 헤더 파일에 선언되어있음 char* strtok(char* str, char* delimiters); 매개변수 차례대로 토큰화 대상문자열, 토큰화 기준이 될 구분 문자열 strtok 이라는 함수의 이름을 분석해보면 str + tok 인데요. string을 tokenize한다. 라고 표현할 수 있습니다. 문자열(string)을 토큰(token)처럼 조각조각 내는 함수 입니다. char* 타입의 문자열 str을 첫번째 매개변수로 받아서, 두번째 매개변수로 들어온 char* 타입의 구분자를 기준으로 문자열을 이쁘게 잘라서 문자열의 포인터를 하나씩 하나씩 반환하는 함수 입니다. 반환값은 포인터를 반환하는데 자른 문자열을 가리키는 char* 입니다. 예제 char str[] = "Block D M..

- 포인터 배열 : 배열이 선언되면 컴파일러는 메모리에 기저주소와 모든 배열의 요소들이 포함될 수 있는 만큼의 연속적인 공간을 할당한다. *** 기저주소는 첫 번째 요소(인덱스 0)의 위치 ex) int x[5] = {1,2,3,4,5}; :위와 같은 배열의 기저주소가 1000이라고 하고, int 형의 크기가 2바이트라고 하면 , 1은 1000에, 2는 1002에, 3은 1004에, 4는 1006에, 5는 1008에 저장된다. : 이름 x는 첫 번째 요소를 가리키는 상수 포인터로 정의가 된다. 따라서 x의 값은 첫 번째 원소 x[0]이 저장된 1000이 된다. : 즉 x = &x[0] = 1000 : 만약 int형 포인터인 p를 정의하면, p가 배열x를 가리키게 할 수 있다. ex) p = x p = &..