본문으로 바로가기

[D+7] C언어 기초 (1)

category 해킹&보안/C언어 2017. 2. 15. 21:18
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

2. C언어 기초


1) 연산자


▣ 연산자의 우선 순위

 순위

형 

 연산자

 결합성

 1

primary

  ()  []  .  ->

------->

 2

단항

  *  &  !  +  --  (datatype)  sizeof

<-------

 3

승법

  *  %  /

------->

 4

가법

  +  -

------->

 5

관계

  <  >  <=  >= 

 -------> 

 6

등가

  ==  != 

 -------> 

 7

논리곱

  && 

 -------> 

 8

논리합

  ||

 -------> 

 9

대입

  =  +=  -=  *=  %=  /=

 <------- 


- 중괄호( {} ) 는 연산자로 취급하지 않음. 그냥 코드를 묶는 역할.

- 결합성 : 동일선상에 같은 우선순위의 연산자들이 여러 개 있을 때 어느 쪽에서 부터 연산해야 할지 결정.


▣ 산술 연산자

#include <stdio.h>

int main()
{
	int a = 6;
	int b = 4;

	printf("덧셈	: %d\n", a + b);
	printf("뺄셈	: %d\n", a - b);
	printf("곱셈	: %d\n", a * b);
	printf("나눗셈	: %d\n", a / b);
	printf("나머지	: %d\n", a % b);

	return 0;
}

- 사칙연산과 똑같지만 / 는 int 형으로 계산할 때와 double 형으로 계산할 때 다른 결과를 보여줌.

- 6 / 4 = 1 이지만 6.0 / 4.0 = 1.5 라는 값을 반환함.

- % 나머지 연산은 오직 int 형 정수들을 위한 연산자임.


▣ 관계 연산자

- 관계 연산자는 < , >, >=, <=, ==, != 가 있으며 맞으면 참(1) 틀리면 거짓(0)을 반환함.

- 이 때 참, 거짓을 논리값이라 부름.

- == 연산자는 두 수가 같으면 참을 반환.

- != 연산자는 두 수가 같지 않으면 참을 반환.

#include <stdio.h>

int main()
{
	int a = 6;
	int b = 4;

	printf("%d \n", a < b);
	printf("%d \n", a <= b);
	printf("%d \n", a > b);
	printf("%d \n", a >= b);
	printf("%d \n", a == b);
	printf("%d \n", a != b);

	return 0;
}

- 결과 값


▣ 논리 연산자

- 논리값(T, F)로 연산을 해서 결과도 논리값으로 반환.


- AND(논리곱, &&) : 두 수가 모두 참일 때 참을 반환.

- OR(논리합, ||) : 둘 중 하나만 참이어도 참을 반환.

- NOT(부정, !) : 참을 거짓으로, 거짓을 참으로 반환.

- XOR(배타적논리합, ^) : 서로 다른 논리값을 주면 참, 같으면 거짓.

☞ XOR 같은 경우는 비트논리 연산자이므로 비트단위로 계산함

☞ 6 ^ 4 = 0110 ^ 0100 = 0010 = 2 가 됨.

☞ 또한 a ^ b = c 이면 b ^ c = a 도 됨.

a ^ a = 0 이 됨을 기억할 것.

#include <stdio.h>

int main()
{
	int a = 0;
	int b = 1;
	int c = -1;

	printf("%d \n", a || b);
	printf("%d \n", b || c);
	printf("%d \n", a && c);
	printf("%d \n", b && c);
	printf("%d \n", !a);
	printf("%d \n", !b);

	return 0;
}

- 결과 값



▣ 대입 연산자

- 변수의 값이 바뀌는게 제일 중요함.

- ★= : ★ 연산을 하고 난 뒤의 값을 대입.

- 종류 : =, +=, -=, *=, /=, %= 등이 있음.







i2sec 대구지점 23기 수료생.

'해킹&보안 > C언어' 카테고리의 다른 글

[D+9] C언어 기초 (3)  (0) 2017.02.17
[D+8] C언어 기초 (2)  (0) 2017.02.16
[D+5] C언어 소개 (4)  (0) 2017.02.13
[D+4] C언어 소개 (3)  (0) 2017.02.09
[D+3] C언어 소개 (2)  (0) 2017.02.08