C 2018. 5. 15. 22:48
_C언어 로또번호 생성하기 핵심요소조건문, 반복문, 함수, 배열, 포인터, 구조체 사용정렬, 짝수&홀수 판별라이브러리 함수 이번 포스팅에서 로또 번호를 출력을 해보려 합니다.일반적인 1~45 사이의 숫자 6개를 랜덤하게 뽑아내는 것이 아니라 조건을 넣어 출력을 해봅시다.해당 조건을 넣음으로써 다양하게 프로그래밍을 연습 할 수 있습니다.(극악의 번호들이 나올 경우를 줄여 당첨 확률을 높일 수 있습니다.) 조건1) 원하는 만큼 출력 할 수 있어야 한다.조건2) 같은 줄에 중복된 숫자가 없어야 한다.조건3) 같은 줄에 숫자가 모두 홀수가 아니어야 한다.조건4) 같은 줄에 숫자가 모두 짝수가 아니어야 한다.조건5) "1-2-3-4-5-6" 과 같은 수열이 아니어야 한다. - 헤더 파일, 함수를 우선 선언 하여 ..
C 2014. 7. 19. 16:39
void * ptr; 이것을 가리켜 void형 포인터 변수라 한다. void형 포인터 변수는 무엇이든 담을 수 있는 바구니에 비유할 수 있다. void현 포인터 변수에는 어떠한 변수의 주소 값이든 잠을 수 있다. 하다못해 함수의 주소 값도 담을 수 있다.아래의 예제를 살펴보자.#include void SoSimpleFunc(void) {printf("I'm so simple");} int main(void) {int num =20;void *ptr; ptr = # // 변수 num의 주소 값 저장printf("%p \n", ptr); ptr = SoSimpleFunc; // 함수SoSimpleFunc의 주소 값 저장printf("%p\n", ptr);return 0;} 위의 예제에서 보이듯이 무엇..
C 2014. 7. 18. 16:06
포인터란? - 바로가기 프로그래머가 정의하는 모든 함수는 프로그램 실행 시 '메인 메모리'에 저장되어서 실행이 된다.그리고 함수의 이름은 메모리상에 저장된 함수의 주소 값을 의미한다. 그럼 함수 포인터 변수를 어떻게 선언 해야 할까?우선 함수 포인터의 포인터 형을 결정 해야한다. 아래의 문장을 보자.int simple_func(int num) { . . . }이 함수의 반환형은 int 이며 매게변수의 선언은 int num이며 함수의 이름은 simple_func는 함수 이름이며 함수의 주소값을 의미하는 상수형태의 함수 포인터가 된다. 자 여기서 simple_func의 형(type)은 무엇일까? 우리는 포인터의 형(type)은 반환형과 매게변수의 선언형태를 기준으로 구분하기로 약속 되어있다. 따라서 simp..
C 2014. 7. 16. 11:36
주로 포인터와 배열에 처음 입문한 사람들미 많이들 힘들어 하는데 그중 하나가 '배열 포인터'와 '포인터 배열'이다.저 두개의 말만 보아도 머리가 아파온다 하지만 어떻게 보면 그리 어렵지도 않은 것들이다.아래의 문장들을 보자. int * who_a[4]; // 포인터 배열int (*who_b)[4]; // 배열 포인터 감이 오는가? who_a와 who_b의 유일한 차이점은 소괄호의 유무이다. 하지만 이 하나의 차이가 꾀나 다른 뜻을 가진다. 우선 who_a는 int형 포인터의 배열이다. 즉, 배열의 선언이 되는 것이다.who_b는 int형의 배열을 가리키는 포인터 변수이다. 이것은 포인터 변수의 선언이 된다. 아래의 소스코드를 참고하면 이제 완벽히 알 수 있을 것이다. #include int main(vo..
C 2014. 6. 2. 22:13
스트림이란(Stream)쉽게말해 사용자가 구현하려는 프로그램(Program)에서 파일(File)을 사용하기위해서는 파일(File)과 프로그램(Program)사이에 다리(Bridge)를 놓아야하는데 이 다리(Bridge)를 스트림(Stream)이라 한다. 하지만 실제로 다리가 놓이는 것은 아니며 스트림이 형성이 되었다고 한다면 이렇게 이해를 하면 좋을것 같다." 파일로부터 데이터를 읽어 들일(파일에 데이터를 쓸) 기본적인 준비가 완료 되었다 "그리고 알아두어야 할 점은 운영체제가 파일의 구조를 결정하고 관리하기에 스트림의 형성도 운영체제가 해준다. #includeFILE * fopen(const char * filename, const char * mode);- 성공 시 해당 파일의 FILE 구조체 변수의..
C 2014. 5. 19. 00:59
"포인터란 어떠한 값을 저장하는게 아닌 어떠한 값의 주소(Address)를 저장하는 것 이다!" 어떠한 값의 주소라함은 해당값이 저장된 컴퓨터 메모리상의 주소를 의미한다.ex) num이라는 변수에는 5의 값이 저장되어있다. 그리고 *pnum이라는 포인터 변수에는 num의 주소 123456이 저장 된다는 것이다. 포인터 변수를 만들때는 변수이름앞에 *을 붙여주면 그변수는 포인터 변수가 된다.(사용할때 일반변수와의 구분을 위해 주로 '*p변수이름'의 형식으로 사용한다.) 간단하게 포인터 함수를 이용하여 포인터 변수 정의와 &연산자에 대하여 설명을 하겠다.#include int main(void){int *pnum; // 포인터 변수 선언int num = 12345; // 일반변수 선언 & 초기화pnum = ..