언어/C

구성요소

빨대도둑 2022. 10. 19. 13:39

「C언어 특징」

  • 간결한 언어: 꼭 필요한 기능만 들어가 있고, 표기법이 간결하게 되어있다.
  • 효율적인 언어: C로 작성된 언어는 프로그램이 크기가 작으며, 실행속도가 빠르고 메모리를 효과적으로 사용한다.
  • C언어는 저수준의 프로그래밍도 가능하고 고수준의 프로그래밍도 가능하다. 
  • C언어는 모듈 단위의 프래그램 작성을 지원하고 분할 컴파일도 가능하기 때문에 고수준에서의 프로그램도 작성 가능하다. 하향식 설계, 구조화 프로그래밍, 모듈화 설계 등의 소프트웨어 공학의 다양한 기법들을 적용할 수 있다.
  • 이식성이 강하다

 

「프로그래밍 과정」

1> 설계: 문제를 해결하는 알고리즘을 개발하는 단계

2> 구현: 개발도구를 사용하여 프로그램 소스를 작성하고 컴파일한 수 실행

- 컴파일 오류는 없지만, 알고리즘을 잘못 생각하여 의도했던 대로 실행되지 않는 경우가 있는데 이를 논리적인 오류라 한다. 논리적인 오류란 문법은 틀리지 않았으나, 논리적으로 정확하지 않음을 의미한다. 

3> 유지보수

 

「#include <stdio.h>」

> #으로 시작하는 문장은 전처리기 지시자이다. 전처리기는 보통 본격적으로 컴파일하기 전에 사전 정지 작업을 하는 컴파일러의 일부분이다. #include는 소스코드 안에 특정 파일을 현재의 위치에 포함시키라고 지시한다. 이러한 파일들은 헤더파일이라고 불리며 헤더파일은 컴파일러가 필요로 하는 정보를 가지고 있다. 

> stdio.h라는 파일은 입출력 함수에 대한 정보를 가지고 있는 헤더파일이다. 대부분의 프로그램에서 한 개 이상의 헤더파일을 사용한다. 

 

「int main(void)」

> main()함수를 정의하는 문장이다. 함수(function)란 프로그램에서 입력이 주어지면 출력을 만들어내는 작은 기계이다. 함수는 특정한 작업을 수행하기 위하여 작성된 독립적인 코드이고, 하나의 프로그램은 여러 개의 함수로 이루어진다. 

> main()함수는 c프로그램에서 가장 처음으로 실행되는 부분이다. 모든 c프로그램은 main() 함수가 있어야 한다.

> int main(void)에서 int는 함수가 출력하는 값의 타입이 정수라는 것을 의미하고, void는 비어있다는 의미로 함수의 입력이 없다는 것을 의미한다. 

- int, void 같은 용어틑 특별한 의미를 가지는 단어로 예약어 또는 키워드 라고 한다. 

 

「return 0;」

> return은 함수가 작업을 끝내고 작업의 결과를 반환할 때 사용된다. retun 0; 이 수행되면 main() 함수는 작업을 끝내고 외부로 0 값을 반환한다. 여기서 외부라고 하는 것은 윈도우와 같은 운영체제를 이야기한다. 

-보통 0의 값은 프로그램이 정상적으로 종료했음을 의미한다.

 


「오류」

  • 컴파일 시간 오류: 컴파일 단계에서 발생
  • 실행 시간 오류: 컴파일은 성공적으로 완료되어도, 실행시간에 오류가 발생하는 것
  • 논리오류: 실행도 성공적으로 되지만, 자신이 의도하는 대로 실행이 안된 것

> 오류에는 심각한 정도에 따라서 에러와 경고가 있다. 

  • 에러: 컴파일, 링크가 불가능한 심각한 오류
  • 경고: 컴파일, 링크는 가능하고 실행도 가능하나 잠재적인 문제를 일으킬 수 있는 경미한 오류

 

「주석」

> 주석은 /*와 */로 묶여진 부분이다. 프로그램이 하는 일을 설명하는 설명글로서 프로그램의 실행 결과에 영향을 끼치지 않는다. 주석은 코드를 읽는 사람을 위한 것으로, 가독성을 높여준다. 

-다음은 주석을 붙이는 방법이다.

/*주석을 붙이는 방법*/

/*여러 줄
주석/*

//한줄 주석

/****************
이런것도 가능
**************/

 


「함수」

> 함수의 중괄호 안에는 작업의 세부 단게들이 나열되어 있으며 이러한 작업의 세부단계를 '문장'이라고 한다. 몇 가지 예외를 제외하고는 함수의 외부 문장들을 입력하는 것은 오류이다. 또한 문장은 프로그램을 이루는 가장 기본적인 단위이며, 문장이 모여서 함수가 되고, 함수가 모여서 프로그램이 된다. 문장의 끝은 항상 세미클론(;)으로 끝난다.

 

「함수의 구조」

> 함수는 다음과 같은 구조를 가진다

int main(void){
............
............
............
}
  • int: 함수의 출력 타입
  • main: 함수 이름
  • (void): 함수의 입력 타입, 즉 void는 입력이 없다는 의미이다.
  • { }: 함수의 시작과 끝, 그리고 이 안에 문장이 들어간다.  

 


「변수」: 데이터를 일시적으로 저장할 목적으로 사용하는 메모리 공간

//다음과 같이 선언

int x;
float y;
double z;


//변수 초기화
int x=10;
float y=3.14;
double z=3.141592;


//변수에 값 저장
x=100;
y=9.456
z=1.234568;

> 자료형 이란 변수가 저장할 데이터가 정수인지 실수인지, 아니면 또 다른 어떤 데이터인지를 지정하는 것이다. 자료형에는 정수형, 실수형, 문자형이 있다. 

  • 정수형: short, int, long, long long
  • 실수형: float, double, long double
  • 문자형: char

 

> 변수 이름 짓는 규칙

  • 식별자는 영문자와 (_)언더바로 이루어진다.
  • 식별자 중간에 공백이 들어가면 안 된다.
  • 식별자의 첫 글자는 반드시 영문자 또는 (_)여야 한다. 식별자는 숫자로 시작할 수 없다.
  • 대문자와 소문자는 구별된다. 따라서 변수 index와 Index, INDEX는 모두 서로 다른 변수이다.
  • c언어의 키워드(예약어)와 똑같은 식별자는 허용되지 않는다. 

 


「산술 연산」

연산 연산자  수식
덧셈 + x + y
뺄셈 - x - y
곱셉 * x * y
나눗셈 / x / y
나머지 % x % y

 

「printf( )」: 모니터에 출력을 하기 위한 표준 출력 함수

// 문자열 출력
printf("hello")

//변숫값 출력
printf("%d",sum);

//변숫값이 2개 이상일 때
printf("%d,%f",x,y)
형식 지정자 의미 실행결과
%d 10진 정수로 출력 printf("%d",10); 10
%f 실수로 출력 printf("%f",3.14); 3.14
%c 문자로 출력 printf("%c",'pilot'); pilot
%s 문자열로 출력 printf("%d","air plane"); air plane

 

「scanf( )」: 키보드로부터 입력된 데이터를 지정된 형식으로 변환하여 변수에 저장하는 라이브러리 함수

//사용 방법
scanf("%d",&x)

/*float형의 실수로 받는 예제*/
float r=3.14;
scanf("%f",&r);

/*double형의 실수로 받는 예제*/
double z=3.141592;
scanf("%lf",&z);
형식지정자 의미 예시
%d 정수를 10진수로 입력한다 ("%d",&i);
%f float형의 실수로 입력한다 ("%f",&f);
%lf double형의 실수로 입력한다 ("%lf",&d);
%c 문자 형태로 입력한다 ("%c",&i);
%s 문자열 형태로 입력한다 char s[10];
scanf("%s",s);

 

- scanf() 사용할 때 &붙이는 이유

> scanf() 함수가 변수를 받아서 변수 안에 값을 저장하기 위해서는 반드시 변수의 메모리 주소가 필요한데, 변수의 주소는 바로 변수 앞에 &를 붙여서 사용하기 때문이다.

 

'언어 > C' 카테고리의 다른 글

배열  (0) 2022.10.27
함수&변수  (0) 2022.10.26
제어문  (0) 2022.10.20
수식과 연산자  (0) 2022.10.20
변수와 자료형  (0) 2022.10.20