관리 메뉴

ComputerVision Jack

[C프로그래밍 Chapter2] 본문

Programming Language/C Programming

[C프로그래밍 Chapter2]

JackYoon 2020. 1. 15. 12:40
반응형

[변수와 연산자]

연산자 : C언어를 이용해서 특정 연산을 요구할 때 사용하는 약속된 기호.

 

간단한 예로 덧셈을 C언어에서 계산하려면

덧셈을 연산자를 이용하여 연산하고, 그 결과를 메모리 공간에 저장한다. 그리고 저장된 값을 출력하면 알 수 있다.

 

변수 : 값을 저장할 수 있는 메모리 공간에 붙은 이름. 

수학에서 유사한 값을 대입할 수 있는 문자와 비슷한 의미를 지칭한다.

 

int num;    :  정수 저장이 가능한 메모리 공간할당, 메모리 공간 이름 num

num = 10;  : 메모리 공간에 10이라는 값을 저장 (변수 num을 10으로 초기화 하였다.)

int value = 20; : 변수 선언과 동시에 초기화 할 수 있다.

 

변수를 선언만 하고, 값을 초기화 하지 않으면 쓰레기 값이 변수에 들어가게 된다.

printf("num의 값 : %d \n", num); 10이 출력됨을 알 수 있다.

 

또한 변수 이름을 정할 때 규칙이 존재한다.

  • 알파벳, 숫자, 언더바(_)로 구성된다.
  • c언어는 대소문자를 구분한다
  • 숫자로 시작할 수 없고, 키워드도 변수의 이름으로 사용할 수 없다. (ex int return)
  • 이름 사이에 공백이 삽입될 수 없다.

= 대입 연산자 : 값에 대입을 지칭하는 연산자이다.

(수학에서 같다와 의미가 전혀다르다. c언어에서 같다의 표현은 == 이다)

[다양한 연산자]

대입 연산자(=) 산술 연산자( +, - / %..)

산술 연산자는 우리가 사용하는 수학적 연산자를 지칭하면 된다.

 

복합 대입 연산자(+= ..)

복합 대입 연산자는 산술 연산자와 대입 연산자를 합쳐놓은 연산자이다.

a = a + 10 이라면 

a += 10; 이라고 바꾸어 쓸수 있다.

 

증가 감소 연산자(++, --)

c언어 연산자중 가장 중요하고, 문제에 단골로 나오는 연산자.

int num = 10; 으로 초기화 하고

++num 이나 num++형태를 확인할 수 있다.(전치냐 후치냐)

가장 이해하기 편했던건 옆에 보이는 초록색 인덱스를 이용하는 방법이다.

++num이 앞에 와있다면 15번 인덱스에 들어오기전 num은 21이 되어있는 것이다.

뒤에 있다면 반대로 이해하면 된다. 17인덱스가 끝난뒤로 num값은 21이 되어있는 것이다.

 

관계연산자(>, < , ==, !=..)

관계연산자는 대소와 동등을 판단하는 연산자이다.

조건을 만족하면 1을 반환하고 조건히 만족하지 않으면 0을 지칭한다.(참1거짓0)

int result = (10 > 5);  하면 result에는 1이 저장된다.

 

논리연산자(&&, ||, !)

논리연산자는 and(&&) or(||) not(!)에 관한 연산이다.

 

콤마 연산자(,)

콤마 연산자는 연산의 목적 보다는 구분을 짓는 용도로 많이 사용된다.

 

이러한 연산자들은 우선순위결합 방향이 존재하기 때문에 숙지를 하고 자주 사용해보는 것을 추천한다.

(논리 연산자보다 관계 연산자가 먼저 진행 된다 etc..)

 

[키보드로 데이터 입력]

앞에서 변수를 초기화 하였는데, 프로그램에서 내가 키보드에 입력한 값으로 변수를

초기화 하고 싶은 경우에는 함수를 사용한다.

printf() 사용해서 화면에 출력하였듯 이번엔 scanf()함수를 사용하자.

 

scanf_s()함수

c언어 책을 사서 scanf를 공부할 때 프로그램을 돌리면 warning 문구가 나온다.

이는 scanf가 보안상의 이유로 막힌것이다. 

보안 수업에서 scanf()입력으로 버퍼를 밀어내는 것을 봤는데 아직도 신선했다.

그래서 나온 것이 scanf_s()함수

 

즉 scanf()함수를 사용하려면

#pragma warning(disable : 4996)을 상위에 선언해서 경고 문구를 막던지

아니면 그냥 scanf_s()로 사용하면된다.

int num;

scanf_s( "%d", &num);

%d는 정수형을 받는 서식문자이다.

&은 선언한 변수에 값을 넣어주세요 표현이다(주소값) 따라서 &num은 num에 입력 값을 대입하라는 의미이다.

scanf_s("%d", "%d", &num1, &num2); 이런식으로 복수의 값을 받아올 수도 있다.

반응형

'Programming Language > C Programming' 카테고리의 다른 글

[C프로그래밍 Chapter6]  (0) 2020.01.28
[C프로그래밍 Chapter5]  (0) 2020.01.22
[C프로그래밍 Chapter4]  (0) 2020.01.20
[C프로그래밍 Chapter3]  (0) 2020.01.18
[C프로그래밍 Chapter1]  (0) 2020.01.14
Comments