본문 바로가기

C 프로그래밍

(10)
C언어 정리10 - 변수 유효범위 변수 유효범위는 크게 지역 유효 범위 와 전역 유효 범위로 나누어진다. 지역 유효 범위 : 함수 또는 블록 내부에서 선언되어 그 지역에서 변수의 참조가 가능한 범위 전역 유효 범위 : 2가지로 나눌 수 있는데, 하나는 하나의 파일에서만 변수의 참조가 가능한 범위, 다른 하나는 프로젝트를 구성하는 모든 파일에서 변수의 참조가 가능한 범위이다. 지역변수 - 함수 또는 블록에서 선언되는 변수 - 함수나 블록에서 지역변수는 선언 문장 이후에 함수나 블록의 내부에서만 사용이 가능 - 함수의 매개변수도 함수 전체에서 사용 가능한 지역변수와 같다 - 지역변수는 선언 후 초기화하지 않으면 쓰레기 값이 저장되므로 주의해야 한다. - 지역변수가 할당되는 메모리 영역을 스택(stack)이라고 한다. int main(void..
C언어 정리 9 - 문자와 문자열 문자, 문자열 선언 문자 : 영어의 알파벳이나 한글의 한 글자 (ex) 'A', '야', ... 문자는 작은따옴표 ' '로 둘러싸서 표기한다. char형 변수에 문자를 저장한다 char ac = 'B' 문자열 : 문자의 모임인 일련의 문자 (ex) "PYTHON", "한국",.... 문자열은 큰 따옴표 " "로 둘러싸서 표기한다. 문자열은 'HELLO'처럼 작은따옴표로 둘러싸도 문자가 될 수 없고, 오류가 발생한다. 문자의 모임인 '문자 배열'을 사용하여 문자열을 저장한다. 문자열의 마지막을 의미하는 NULL 문자 '\0'가 마지막에 저장되어야 한다. 문자열이 저장되는 배열 크기는 반드시 저장될 문자 수보다 1이 커야 한다. (C언어는 항상 널(NULL) 문자를 문자열의 마지막으로 인식한다.) char ..
C 언어 총 정리 8 - 함수 기초 함수 함수란 필요한 입력을 받아 원하는 어떤 기능을 수행한 후 결과를 반환(return)하는 프로그램이다. 함수는 라이브러리 함수(library function)와 사용자 정의 함수(user defined function)으로 구분 된다. C프로그램에서 사용자가 직접 개발한 함수를 사용하기 위해서는 함수선언, 함수호출, 함수 정의가 필요하다. 함수정의 함수정의는 함수머리와 함수 몸체로 구성된다. int add(int a, int b) // 반환형 함수이름(매개변수 목록) //함수머리 { //함수몸체 int sum = a + b; return (sum); } 함수몸체에서는 함수가 수행해야 할 문장들로 구성된다. return과 반환형 void (int a, int b) // 반환형 함수이름(매개변수 목록) ..
C언어 총 정리 7 - 배열 배열은 여러 변수들이 같은 배열이름으로 일정한 크기의 연속된 메모리에 저장되는 구조이다. 배열을 구성하는 각각의 항목을 배열의 원소라 한다. 배열에서 가장 중요한 요소는 배열이름, 원소 자료유형, 배열크기이다. 배열선언 int data[10]; 같은 형태로 원소자료유형 배열이름[배열크기]; 로 선언한다. 배열 선언시 초기값 지정이 없다면 반드시 배열크기는 양의 정수로 명시한다. 배열의 크기를 지정하는 부분에는 양수 정수로 리터럴 상수와 매크로 상수 또는 이들의 연산식은 가능하지만 변수와 const 상수로는 배열의 크기를 지정할 수 없다. 배열 초기화 배열선언을 하면서 대입연산자를 이용하며 중괄호 사이에 여러 원소값을 쉼표로 구분하여 기술하는 방법이다. int score[5] = {20,40,56,87,9..
C언어 총정리 6 - 포인터 변수와 선언 메모리 공간은 8비트인 1바이트마다 고유한 주소가 있다. 주소연산자 & &는 피연산자인 변수의 메모리 주소를 반환하는 주소연산자이다. 변수의 주소값 - 형식제어문자 %u 또는 %d로 직접 출력 할수 있다. - 16진수로 출력할려면 %p를 사용한다. 포인터 변수 선언 포인터 변수 선언에서 자료형과 포인터 변수 이름 사이에 연산자 * 를 삽입한다. ex) 자료형 *변수이름; int *ptrint; short *ptrint; 변수 자료형이 다르면 그 변수의 주소를 저장하는 포인터의 자료형도 달라야한다. ptrint = &data; 는 ptrint포인터 변수에 data의 주소값을 저장하는 문장이다. 초기값을 대입하지 않으면 쓰레기값이 들어가므로 포인터 변수에 지정할 특별한 초기값이 없는 경우에 0번 주소값인 N..
C언어 정리 - 5 제어문 종류 : 조건선택, 반복(순환), 분기처리 조건선택 : 두 개 또는 여러 개중에서 한 개를 선택하도록 지원하는 구문 EX) if, if else, if else if, nested if, switch 반복(순환) : 정해진 횟수 또는 조건을 만족하면 정해진 몇 개의 문장을 여러 번 실행하는 구문 EX) for, while, do while 분기 구문 : 작업을 수행 도중 조건에 따라 반복이나 선택을 빠져 나가거나(break), 일정 구문을 실행하지 않고 다음 반복을 실행하거나(continue), 지정된 위치로 이동하거나(goto) 또는 작업 수행을 마치고 이전 위치로 돌아가는(return)구문이다. if문 형태는 if(cond) stmt;이다. if문에서 조건식 cond가 참이면 stmt를 실행을..
C언어 정리 - 4 연산식과 다양한 연산자 연산식 : 변수와 다양한 리터럴 상수 그리고 함수의 호출 등으로 구성되는 식, 연산식은 반드시 하나의 결과값인 연산값을 갖는다. 연산자 : 산술연산자 +,-,* 기호와 같이 이미 정의된 연산을 수행하는 문자 또는 문자조합 기호 피연산자 : 연산에 참여하는 변수나 상수 연산자는 연산에 참여하는 피연산자의 갯수에 따라 단항, 이항, 삼항 연산자로 나누어진다. 단항연산자 : 부호를 표시하는 +, - 이항연산자 : 덧셈, 뺄셈 +, -, *, /등의 연산 삼항연산자 : 조건연산자 '? : '가 유일하다. 부호연산자 +, - 는 피연산자 앞에 위치하는 전위 단항연산자이다. 대입연산자 = 는 연산자 오른쪽의 연산값을 변수에 저장하는 연산자이다. 축약 대입연산자 대입연산자 a = a + b를 ..
c언어 정리 - 3 전처리와 입출력 c언어는 컴파일러가 컴파일하기 전에 전처리기의 전처리 과정이 필요하다. 대표적인 헤더파일 stdio.h는 printf(), putchar(), getchar() 등과 같은 입출력 함수를 위한 함수 원형 등이 정의된 헤더 파일이다. 입력 함수 scanf() &는 주소 연산자로 뒤에 표시된 피연산자인 변수 주소 값이 연산 값으로, scanf()의 입력 변수 목록에는 키보드에 입력값이 저장되는 변수를 찾는다는 의미에서 반드시 변수의 주소연 산식 '&변수 이름'이 인자로 사용 #define _CRT_SECURE_NO_WARNINGS // scanf() 오류를 방지하기 위한 상수 정의 비주얼 스튜디오에서 함수 scanf() 사용을 추천하지 않아 위 scanf() 오류 방지를 위한 매크로 상수 지시..