*변수,상수

 

- 변수(Variable)는 변하는 값이며, 프로그래밍에서는 두가지 의미를 가진다.

 

- 1. 프로그램이 실행되는 동안 지속적으로 값이 바뀌는 정보이다.

 

- 2. 사용자로부터 데이터를 받거라 처리하기 위한 저장공간이다.

 

- 변수 이름은 데이터가 저장되는 공간(메모리)을 가리키는 별명이다.

 

 

#상수

 

- 상수(Constant)는 프로그램을 실행할 때 한번 값이 결정되면 프로그램이 끝날 때 까지

  다른값으로 바뀌지 않는 정보를 말한다. 다시 말해 상수는 변하지 않는 숫자를 의미한다.

 

Ex) 3.14 , 100 , 'A' , "Hello World!"

 

 

 

#변수 이름을 정할때 기억해야 할 것

 

- 변수 이름은 영문자 a~z , A~Z , 숫자 0~9 그리고  _ (밑줄)을 조합하여 구성할 수 있다.

 

- 모두 숫자로 구성하거나 숫자로 시작하는 문자열은 변수 이름으로 사용할 수 없다.

 

- 공백을 포함할 수 없다.

 

- 대,소문자를 구별하기 때문에 (name , Name , NAME , naME) 이와 같이 사용한 4개의 변수는

  서로 다른 변수 이름으로 처리된다.

 

- 예약어를 변수 이름으로 사용할 수 없다.

   EX) 'int' , 'char' ...

 

 

#변수 선언

 

- 컴파일러에게 어떤 변수를 사용하겠다고 미리 알리는것

 

   자료형    변수이름;

 

 

 

#변수에 값을 저장하는 방법

 

 

 

 

 

- 변수를 선언하면서 초깃값을 대입하는 것을 초기화라고 한다.

 

 

 

 

#변수의 사용

 

 

 

# 기능에 따른 연산자의 분류

 

                 연산자의 분류

                           연산자

                                의미

                       대입

                               =

                    오른쪽을 왼쪽에 대입

                       산술

                       +  -  *  /  %

                   사칙연산과 나머지 연산

                       부호

                           +  -

 

                       증감

                          ++  --

                         증가,감소 연산

                       관계

                    > < == != >= <=      

                    오른쪽과 왼쪽을 비교

                       논리

                           && || ! 

                       논리적인 AND,OR

                       조건

                               ?

                       조건에 따라 선택

                       콤마

                               , 

               피연산자들을 순차적으로 실행 

               비트 단위 연산자

                      & | ^ ~ << >>  

              비트별 AND,OR,XOR,이동,반전

                  sizeof 연산자

                            sizeof

    자료형이나 변수의 크기를 바이트 단위로 반환

                      형변환

                            (type)

              변수나 상수의 자료형을 변환

                  포인터 연산자

                            * & []

      주소계산,포인터가 가리키는 곳의 내용 추출

                  구조체 연산자

                             .  ->

                       구조체의 맴버 참조

 

 

 

#산술 연산자

 

                     연산자

                        기호

                      의미

                     예(Ex)

                      덧셈

                          +

                x와y를 더한다.

                       x+y

                      뺄셈

                          -

                 x와y를 뺀다

                       x-y

                      곱셈

                          *

                x와y를 곱한다.

                       x*y

                    나눗셈

                          /

                x와y를 나눈다.

                       x/y

                    나머지

                          %

         x와y를 나눌때 나머지값 

                       x%y

 

 

#산술연산자를 사용한 예제

 

 

 

 

#증감 연산자

 

                      증감 연산자   

                                              의미

                          ++x

                    x값을 먼저 증가한 후에 다른연산에 사용한다.

                    이 수식의 값은 증가된 x값이다 

                          x++

                    x값을 먼저 사용한 후에 증가한다.

                    이 수식의 값은 증가되지 않은 원래의 x값이다.

                          --x

                    x값을 먼저 감소한 후에 다른 연산에 사용한다.

                    이 수식의 값은 감소된 x값이다.

                          x-- 

                    x값은 먼저 사용한 후에 감소한다.

                    이 수식의 값은 감소되지 않은 원래의 x값이다.

 

 

 

 

 

 

 

 

 

 

 

#복합 대입 연산자

 

 

                    복합 대입 연산자

                               의미

                            x += y

                            x = x + y

                            x -= y

                            x = x - y

                            x *=y

                            x = x * y

                            x /= y

                            x = x / y

                           x %= y

                            x = x % y

                           x &= y

                            x = x & y

                           x |= y

                            x = x | y

                           x ^= y

                            x = x ^ y

                           x >>= y

                            x = x >> y

                           x <<= y

                            x = x << y

 

 

 

 #관계 연산자

 

- 두개의 피연산자를 비교하는 연산자

 

- 결과값은 참(1) 아니면 거짓(0)

 

 

                        연산자 기호

                                 의미

                    사용 예

                              ==

                         x와 y가 같은가?

                    x == y

                              !=

                         x와 y가 다른가?

                    x != y

                              >

                         x가 y보다 큰가?

                      x > y

                              <

                         x가 y보다 작은가?

                      x < y

                             >=

                   x가 y보다 크거나 같은가?

                    x >= y

                             <=

                   x가 y보다 작거나 같은가?

                    x <= y

 

 

 

 

 

 

#논리 연산자

 

 

                 연산자 기호

                   사용 예

                                   의미 

                      &&

                   x && y

 AND연산 , x와y가 모두 참이면 참 , 그렇지 않으면 거짓

                       ||

                     x || y

 OR연산 , x나y중에서 하나만 참이면 참, 모두 거짓이면 거짓

                       !

                      !x

 NOT연산 , x가 참이면 거짓 , x가 거짓이면 참

 

 

 

 

 

#조건 연산자 ( ? )

 

- max_value = (x>y) ? x : y;

 

- x>y가 참이면 x가 수식의 값이 된다. x>y가 거짓이면 y가 수식의 값이 된다.

 

*Escape Sequence (특수 문자)

 

- 데이터에 대한 입출력 형식과 관련된 특수 기호 문자

 

                               특수 문자

                                    특수 문자 의미

                                 ' \n ' 

                          New Line :  새로운 줄로 이동

                                 ' \r ' 

                                 줄의 처음으로 이동

                                 ' \b ' 

                              한 문자 왼쪽으로 이동 

                                 ' \t  ' 

                                    탭 만큼 이동

                                 ' \\ ' 

                             \문자 자체를 화면에 출력

                                 ' \' ,\" ' 

                                 뒤에 " , " 표시 출력

                                 ' \? ' 

                                 물음표 표시 출력

 

 

문자를 " "으로 지정해서 출력하고 싶다면 백슬래시로 지정을 해주면 된다.

 

 

#서식 문자

 

- 서식문자 : 출력 형태를 지정하는 용도

  printf("출력 서식", "출력 대상");

 

                            제어 문자

                                출력 결과

                               %d

                            10진(Decimal)정수

                               %f

                        10진형 부동(Floating)정수 

                               %c

                           단일 문자(Character)

                               %s

                               문자열(String) 

                               %o

                               8진(Octal)정수

                               %x

                          16진(Hexa_demical)정수

                               %u

                      부호없는(unsigned)10진 정수  

 

 

 

 

 

아스키(ASCII)코드

 

- 컴퓨터에서는 대부분 문자를 숫자로 변환해서 전송하는 방법을 사용한다.

 

- 약속한 정보가 서로 달라 문자를 제대로 전송할 수 없다는 문제점이 있다.

 

- 이런 문제점 때문에 문자를 숫자로 표현하기 위한 표준이 필요했는데 그 표준이 아스키(ASCII)코드이다.

  ASCII [American Standard Code for Information Interchange]

 

- 출력 불가능한 제어문자 33개(0~32번) 출력 가능한 문자 95개로 이루어져있다.

  총 128개(8비트 중 7비트만 사용)의 코드로 구성된다.

 

#아스키 코드 표

 

 

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

C언어 [반복문 while , do~while , for]  (0) 2017.10.24
C언어 [형변환,조건문 if문,switch문]  (0) 2017.10.22
C언어 [자료형,scanf]  (0) 2017.10.19
C언어 [변수와 상수,연산자]  (0) 2017.10.18
C언어 [C언어 소개]  (0) 2017.10.14

*프로그램이란 ?

 

- 어떤 목적을 이룰수 있도록 프로그래밍 언어로 진행 순서를 기술한 것을 프로그램이라고 한다.

 

- 프로그램이란 보통 어떤 작업이 나열된 계획표 또는 순서표를 뜻한다.

 

- 프로그램은 컴퓨터에게 작업할 일을 순서대로 알려주기 위해 만든 파일이라 할수있다.

 

- 확장자가 .exe인 파일을 의미한다. (실행파일)

 

- 컴퓨터가 작업할 내용을 컴퓨터가 이해할 수 있는 언어(기계어)로 만들어져있다. 

 

 

#프로그래밍 언어란 ?

 

- 컴퓨터는 2진숫자(0과1)로 이루어진 기계어를 사용한다.

 

- 사람들이 사용하기 편한 언어로 작성한 작업내용을 기게어로 번역할수 있도록 번역한다. (컴파일)

 

- 프로그래밍 언어는 컴파일러와 약속한 표현을 사용해야한다.

 

- 각 상황에 맞게 특화된 프로그래밍 언어가 만들어지기 시작했으며, 그중하나가 C언어이다.

 

- 결국 프로그래밍 언어란 사람에게 친숙한 표현법을 사용하여 프로그래밍할 수 있도록 만든 언어이다.

 

 

#C언어의 탄생

 

- 1960년대 개발되었던 운영체제들은 하드워에 종속적인 언어를 사용하여 개발되었다.

  따라서 하드웨어가 바뀌면 운영체제의 많은 부분을 다시 개발해야했다.

 

- 벨 연구소의 데니스 리치 와 켄 톰슨은 이런 불편함을 없애고자 하드웨어가 변경되어도 프로그램을

  다시 작성하지 않아도 되는 운영체레를 만들기 위해 노력했다.

 

- 1970년에 켄 톰슨이 B언어를 만들었지만 이 언어도 독립된 운영체레를 만드는 데 적합하지 않았다.

 

- 1972년 켄 톰슨은 데니스 리치와 함께 새로운 언어를 개발 이것이 C언어이다.

 

 

#C언어의 특징

 

- C언어는 유닉스 운영체제를 만드는 데 사용한 프로그래밍 언어이다.

 

#C언어의 4가지 특징

 

1. C언어는 구조화된 언어이다

 

 - 일정한 단위로 명령들을 그룹으로 묶는 방법을 제공 , 작업 단위가 명확하게 구분되어 유지 보수가 편리

   자신이 원하는 작업을 분리하기도 쉽기 때문에 새로운 프로그램을 개발할 때 재사용하기에도 좋다.

 

2. C언어는 이식성이 높다

 

 - C언어로 만든 프로그램을 거의 수정하지 않고 다른 하드웨어 또는 운영체제로 가져갔을 때도 잘 동작한다는 뜻이다.

   하드웨어에 종속적일 수 있는 부분을 C언어에서 분리해 런타임 라이브러리(Runtime Library)라는 개념을 제공한다.

 

3. C언어는 확장성이 좋고,표현법이 다양해서 자기만의 표현법을 개발할 수 있다.

 

 - 다른 언어에 비해 표현법이 더 많고, 개발자가 개발 상황에 따라 선택할 수 있는 문법 구조나 표현법이 다양하여 자율성이 높다.

 

4. C언어는 생산성이 높다.

 

 - C언어를 사용하는 프로그래머들은 스스로 개발 인프라(명령,그룹,함수)를 구축하기 때문에 경력이 쌓일수록 인프라가 다양해져서

   프로그램 개발 속도가 빨라진다. 그뿐 아니라 사용자의 여려가지 요구에대해 스스로 대처할수 있기때문에 완성도와 만족도가

   더 높을수 밖에없다.

 

 

#C프로그램 실행파일

 

 

#소스파일(*.c)

 

- 소스파일(Source File)은 프로그래머가 만들고 싶은 프로그램을 C언어 문법을 사용해서 작성한 파일이다. (텍스트 파일 형식)

 

- 대부분의 개발자들이 C언어 소스파일을 구별할때 .c 확장자를 사용하기 때문에 파일 확장자는 .c를 사용한다.

 

 

 

#목적파일(*.obj)

 

- 목적파일은(Object File)은 컴파일러(번역기)가 소스파일을 컴파일하면 만들어지는 파일이다.

 

- 컴파일러가 실행 파일을 만드는 시간을 줄이기 위해 만드는 파일이기도 하다.

 

- 내용이 많은 소스파일에서 비슷한 작업들을 모아서 여러 개의 파일로 나누고 각각의 파일을 컴파일 하는 방식을 사용한다.

 

 

 

# 실행파일(*.exe)

 

- 실행파일(Executable File)은 컴퓨터에서 실행할 수 있는 파일을 말한다.

 

- 하나이상의 목적파일을 연결자(Linker)가 연결(Link)해서 실행파일을 만든다.

 

- 이렇게 만들어진 실행파일은 기게어로 나열된 프로그램 파일로서 더 이상의 컴파일 작업 없이 컴퓨터에서 바로 실행가능하다.

 

- 실행 파일의 확장자나 형식은 운영체제마다 다르다.

 

 

#Visual Studio 다운

 

https://www.visualstudio.com/

 

 

 

 

 

 

#Visual Studio로 만드는 간략한 소스 설명

 

 

 

 

 

 

# #include <stdio.h>

 

- C언어에서는 #으로 시작하는 문장을 전처리기라고 부른다.

 

- 전처리기(Preprocessor)는 미리,사전에 처리한다는 뜻이다.

 

- 소스 코드를 번역하기 위해 stdio.h 파일을 먼저 참조해야하는데 그 이유는

   stdio.h 파일에 main함수에서 사용한 printf 함수를 사용하기 위한 정보가 기록되어있기 때문이다.

 

- 전처리기는 끝에 ( ; ) 세미콜론을 사용하지 않는다.

 

 

 

#main , 함수

 

- 프로그램의 시작을 나타내려면 main함수를 반드시 정의해야 한다.

 

- 함수(function) : 특정 기능을 수행하는 처리 단계들을 괄호로 묶어서 이름을 붙인것

 

- 함수는 프로그램을 구성하기 위한 기본적인 단위이다.

 

- 함수는 여러개의 문장으로 이루어져있다.

 

- 문장들은 순차적으로 실행된다.

 

- 문장의 끝에는 반드시 ( ; ) 세미콜론이 있어야 한다.

 

- { }를 사용하여 자신의 영역을 표현해야 한다.

 

 

 

#void

 

- '정해지지 않았다'는 의미의 예악어(Reserved word)이다. 

 

- '없다'라는 의미로도 많이 사용된다.

 

- main앞에 있는 void는 '함수의 수행 결과 값이 정해지지 않았다' 라는 뜻이고

  main뒤 ()괄호 안에 있는 void는 'main 함수로 전달되는 정보가 정해지지 않았다' 라는 뜻이다.

 

 

 

#printf("Hello World");

 

- printf는 C언어의 표준 출력함수이다.

 

- 모니터 등의 콘솔(Console)화면에 'Hello World'라고 출력한다.

 

- 문장 끝에 반드시 ( ; ) 세미콜론을 반드시 입력해야 오류가 발생하지 않는다.

 

 

 

 

#주석

 

- 상황을 설명하거나 작업내욜을 기억하기 위해 소스 파일에 메모를 남기는 것

 

- 주석은 컴파일러가 번역을 하지 않으므로 어떤 내용을 적어도 상관없다.

 

 

 

 

#들여쓰기

 

- 들여쓰기(indentation) :  같은 수준에 있는 문장들을 왼쪽 끝에서 몇자 안으로 들여쓰는 것

 

- 주석을 사용하지 않으면 무슨 처리를 하고있는 프로그램인지 알기 어렵고 들여쓰기를 사용하지 않으면 

  문장을 구분하기 어렵기 때문에 코드의 가독성을 높이기위해 주석과 들여쓰기는 사용해주면 좋다.                                                               

+ Recent posts