본문 바로가기

프로그램언어/C언어

c언어 사용자 정의 함수 1. 함수 함수란 프로그램에서 특정한 작업을수행하도록 따로 정의해 놓은 독립적인 프로그램의 단위를 의미 한다. 함수 타입 반환 값 매개 변수 첫 번재 유형의 함수 없음 없음 두 번재 유형의 함수 없음 있음 세 번째 유형의 함수 있음 없음 네 번째 유형의 함수 있음 있음 2. 첫 번째 유형의 함수 첫 번째 유형의 함수는 반환 값도 없고 매개 변수도 없는 함수입니다. 예문으로 확인해 보겠습니다. 소스코드 실행 결과 #include void sum(); void main() { sum(); } void sum() { int i, hap=0; for(i=1; i 더보기
c언어 포인터 1. 포인터 포인터란 메모리의 주소를 저장하는 변수이다. 포인터 변수는 변수명 앞에 애스터리스크(*) 입력하여 표현한다. *를 간접 연산자라 합니다. 포인터 선언 자료형 *변수명 또는 자료형* 변수명 왜 포인터변수를 쓰는 것인가? 1. 동적으로 메모리 할당을 하기 위해서이다. 2. 함수에서 인수를 받아 다른 내용으로 갱신하기 위해서이다. int *p; p : p에는 메모리가 참조된 주소가 저장 *p : p가 가리키고 있는 주소 안의 값 예] 포인터 변수를 잘못 사용한 경우 char *ptr1 // 전역 변수로 0으로 초기화됨 int main() { double *ptr2; // 지역 변수 0으로 초기화되지 않음 *ptr2 = 3.14; // 에러발생 printf("%d\n", ptr1); printf(".. 더보기
c언어 배열 1. 배열 배열이란 동일한 자료형의 집합이다. 변수의 확정된 형태로 동일한 자료형의 여러 자료를 손쉽게 처리 할 수 있다. 지금까지 변수를 선언할 때 int a, b, c, d, e 이런 방식으로 선언 했습니다. 지금 5개의 정수형 변수를 선언 했는데 이런 정수형 변수가 10개, 20개, 100개 라면 변수를 하나 하난 선언한다는게 어렵습니다. 그래서 배열 이란는 것이 있습니다. 정수형 변수 10개를 선언하라고 하면 int arr[10]으로 선언하면 끝입니다. 머 100개를 선언하라고 하면 int arr[100] 이라고 선언하면 됩니다. 아주 간단하게 끝났습니다. 위 그림을 보면 arr[0], arr[1], ... 여기서 숫자 0, 1, 2, 3, 4를 배열의 첨자라합니다. 배열은 배열의 첨자를 통해 데.. 더보기
c언어 반복문(for, while, do ~ while) 1. 반복문은 특정 조건을 만족하는 동안 계속 반복하여 실행하는 제어문입니다. 반복 제어문에는 for문, while문, do ~ while문이 있습니다. 반복문종류에 대한 표현 형식을 알아 보겠습니다. for 반복문 형식 for( 초기값; 조건식; 증감식) 명령문 while 반복문 형식 while (조건식) 명령문 do ~ while 반복문 형식 do 명령문 while ( 조건식); 2. break문 break문은 현재 실행 중인 반복문에서 실행을 중단하고자 할 때 사용합니다. 앞에서 선택 제어문에서 보았듯이 switch문의 실행을 중단할 때도 사용했습니다. 3. continue문 break문은 반복문을 빠져나오지만 continue문은 한번 건너 뛰어 반복문을 계속 실행하게 하는 기능입니다. 예를 들어 .. 더보기
c언어 선택문 (if, switch) 선택 제어문에는 if문과 switch문이 있습니다. if문은 단 하나의 조건만을 평가할 수 있고 swith문은 한번에 여려 개의 조건을 평가 할 수 있습니다. if문의 유형은 3가지 형태로 알아볼 수 있습니다. 유형1 - 참일 때만 실행하는 if문 if (조건) 명령문 예제] 하나의 정수형 변수를 선언하여 입력된 수가 양수이면 양수를 출력하는 프로그램을 작성하시오. 소스코드 결과 #include int main() { int a; printf("정수 입력 : "); scanf("%d", &a); if (a > 0) { printf("양수\n"); } return 0; } 정수 입렬 : 5 양수 유형2 - 참과 거짓으로 두가지 유형만 존재하는 if문 if (조건) 명령문1 else 명령문2 예제] 하나의 .. 더보기
c언어 연산자의 종류 1. 연산자란? C 언어에서 제공되는 연산자에는 여러가지가 있습니다. 산술연산자, 대입연산자, 증감연산자, 관계연산자, 논리연산자, 비트연산자, 조건연산자등이 있습니다. 이러한 연산자들은 프로그램의 수식에 사용되며 동시에 여러 개의 연산자가 선언되어 어떤 연산자부터 계산할 것인지 우선 순위을 두어 순서대로 연산이 이루어집니다. 연산자 우선순위표 비트 연산자 우선순위 연산자 설명 동일 순위 높음 ↑ ↓ 낮음 ( ) [ ] . -> 일차식 왼쪽 -> 오른쪽 ! ~ ++ -- +(부호) -(부호) * & (type) sizeof 단항 연산자 오른쪽 -> 왼쪽 * / % 산술 연산자 왼쪽 -> 오른쪽 + - 산술 연산자 왼쪽 -> 오른쪽 > 비교 연산자 왼쪽 -> 오른쪽 = 비교 연산자 왼쪽 -> 오른쪽 .. 더보기
c언어 Scanf()함수 1. scanf()함수란? scanf() 함수는 키보드로부터 값을 입력받을 때 사용하는 함수입니다. 2. 형식 scanf( "%문자", 인자1, 인자2, ...); 입력 데이터가 숫자 또는 문자일 때는 변수 앞에 &를 붙인다. 입력 데이터가 문자열 일 때 변수 앞에 &를 붙이지 않는다. 3. %문자의 종류 %문자 설명 %d 부호 있는 10진수 정수 입력( 정수형) %f 고정 소숫점으로 입력( float형 ) %lf 고정 소수점으로 입력( double형 ) %c 문자 입력 %s 문자열 입력 %u 부호 없는 10진수 정수 입력(정수형) %o 부호 있는 8진수로 정수 입력 %x 부호 있는 16진수로 정수 입력 4. 정수, 실수, 문자, 문자열 예제 따라하기 문제1] 가로와 세로의 길이를 입력받아 사각형의 면적.. 더보기
c언어 오버플로우(overflow)와 언더플로우(underflow), 상수, 형변환 1. 오버플로우와 언더플로우 short자료형 변수는 표현 할 수 있는 정수 범위가 -32768부터 32767까지입니다. 정수형 변수에 들어갈 범위가 있기 때문에 산술연산시 그 범위를 넘어갈 수 있습니다. 이 때 최대값을 범위 위로 벗어나는 연산이 이루어지면 이것을 "오버플로우"라고 하고 최소값의 범위 아래로 벗어나면 "언더플로우"라고 합니다. 예제를 통해 확인해 보겠습니다. 소스코드 결과 #include int main() { short a = 32767; // short 최대값 short b = -32768; // short 최소값 a = a + 2; b = b - 2; printf("overflow : %d\n", a); printf("underflow : %d\n", b); return 0; } o.. 더보기