티스토리 뷰
난수 함수
- 난수는 규칙성이 없이 임의로 생성되는 수
- 함호학이나 시뮬레이션, 게임 등에서 필수적
- rand()
- 난수를 생성하는 함수
- 0부터 RAND_MAX까지의 난수를 생성
- 헤더파일: <stdlib.h>
- 사용법: rand()%개수 + 시작 수
예)
rand() % 10 --> 0 ~ 9 사이의 난수나옴
(rand() % 10) + 1 --> 1 ~ 10 사이의 난수 나옴
--> 하지만 실행할 때마다 항상 같은 난수가 발생
매번 난수를 다르게 생성하려면 시드(seed)를 다르게
해야 한다.
srand()함수
- 초기값을 지정하여 rand()함수의 난수를 매번
다르게 생성해주는 함수
- 초기값이 같으면 srand()함수를 사용해도 매번
똑같은 값이 생성되기 떄문에 time()함수를 넣어
사용한다.
(time()함수는 1970년 1월 1일 0시0분0초부터
현재까지의 시간을 초단위로 제공해준다.
time()함수를 사용하려면 <time.h> 헤더파일
이 필요하다.)
예)
#include<stdio.h>
#include<stdlib.h>
#includ<time.h>
int main()
{
int t;
srand(time(NULL)); --> NULL == 0
for(i=0; i<6; i++)
{
printf("%d, 1+rand()% 45);
}
return 0;
}
--> 시드를 현재의 시각으로 사용하는 것은 실행할 때마다
달라지기 때문에 가장 일반적으로 쓰는 방법이다.
system() 함수
- 헤더파일: <windows.h>
- 사용형식: system("명령어 입력");
예) 화면을 지우는 명령어
system("cls");
화면을 멈추는 명령어
system("pause");
변수의 속성: 이름, 타입, 크기, 값 + 범위, 생존 시간, 연결
- 범위: 변수가 사용가능한 범위
- 생존 시간: 메모리에 존재하는 시간
- 연결: 다른 영역에 있는 변수와의 연결 상태
변수의 범위
- 전역 변수: 함수의 외부에서 정의
- 범위: 소스 파일 전체
- 생존 기간: 프로그램 시작부터 종료까지
- 초기값: 0
- 지역 변수: 함수의 내부에서 정의
- 선언 위치: 블록 첫 부분에서 정의
- 범위: 블록 안
- 블록만 다르면 이름이 같아도 상관x
- 생존 기간: 선언된 블록이 끝나면 자동으로 소멸
- 매개 변수도 일종의 지역변수다.
- 초기값: 초기화되지 않으면 쓰레기 값을 가진다.
- 전연변수와 지역변수의 이름이같다면?
- 지역변수가 전역변수를 가린다.
생존 기간
- 정적할당
- 프로그램 실행 시간 동안 계속 유지
- 자동할당
- 블록에서 들어갈때 생성
- 블록에서 나올때 소멸
- 생존 기간을 결정하는 요인
- 변수가 선언된 위치
- 저장 유형 지정자
- 저장 유형 지정자
- auto
- register
- static
- extern
auto
- 변수를 선언한 위치에서 자동으로 만들어지고 블록을
벗어나게 되며 자동으로 소멸되는 저장 유형을 가짐
- 지역 변수는 auto가 생략되어도 자동 변수가 된다.
static
- 정적 지역변수로써 static을 붙이면 지역변수가
정적변수로 된다.
'C언어' 카테고리의 다른 글
11day.c 함수정리 (0) | 2017.04.03 |
---|---|
10day.c 배열 정리 (0) | 2017.03.11 |
8,9day.c 반복문 정리 (0) | 2017.03.11 |
7day.c switch문 정리 (0) | 2017.03.09 |
6day.c if문 정리 (0) | 2017.03.09 |