본문 바로가기
카테고리 없음

C언어의 고유 특징에 대하여(16)

by 데일리J형 2022. 5. 25.

단항 연산자는 앞에서 설명된 이항 연산자(binary operator)와는 달리 단지 하나의 변수에만 사용되는 것을 이야기하며, 이번에 한번 확인해보는 시간을 갖도록 하겠습니다.

 

 

 

단항(unary) 연산자

산술 부정(arithmetic negation) 연산자

수식(expression)에 음의 부호를 붙여 산술적으로 음수를 나타내기 위해 사용되는 연산자입니다.

int x = 5, y = 0;

y = -x; ← 변수 y에 -5의 값이 할당이 됨

 

 

논리 부정(logical negation) 연산자

수식이 거짓이면 참으로, 참이면 거짓으로 바꾸는 논리적 부정을 제공하는 기능입니다. 

if(!good)
	printf("Not Good\n");    ← !good이 참일 경우 출력
else printf("Good\n");       ← !good이 거짓일 경우 출력

 

1의 보수(one's complement) 연산자

비트단위 연산자로 수식을 이진수로 바꾸어 1의 보수를 취하는 연산자입니다. 

 

cast 연산자

수식의 자료형에 형 변환이 이루어질 수 있도록 하는 연산자로서 다음과 같은 형태로 사용합니다. 

int x, y;

x = 10;

y = (float) x;  ← 10의 정수 값을 가지는 x를 부동소수점 자료형으로 변경(y변수에 10.0 할당됨)

 

sizeof 연산자

자료형이나 구조체(strict)용으로 확보되는 기억공간의 크기를 바이트 수로 표시해 주는 연산자입니다.

int a, b, x, y;

char name [10];

x = sizeof(a);           ← 16비트 컴퓨터에서 각각의 정수(integer)는 2바이트

y = sizeof(name);    ← 문자(character)는 1바이트씩 메모리가 설정됨

 

복합 배정 연산자

수식 "x = x+5"와 같이 연산자의 왼쪽이 그대로 오른쪽에 다시 나타나는 수식은 "x+=5"와 같이 복합 배정 연산자 "+="을 사용해서 압축된 형태로 쓸 수 있습니다. 이와 같이 배정 연산자는 간결한 점 이외에도 사람들이 생각하는 방식과 일치한다는 데에 그 장점이 있습니다. 

 

단항 연산자 "="은 우측의 변수 또는 수식을 좌측의 변수에 대입하는 연산자의 기능을 가지며, 복합 배정 연산자는 배정 연산자인 "=" 앞에 산술 연산자(+, -, *, /, %), 시프트 연산자(>>,<<), 비트단위 연산자(&, ^, |)들을 붙여 복합 배정 연산자의 형태로 나타냅니다. 

 

조건 연산자

제어문의 if-else 문에 해당하는 것으로,? 와 :에 의해 나누어진 3개의 수식으로 이루어지며 사용되는 조건 연산자의 형식은 다음과 같습니다. 

수식 1? 수식 2 : 수식 3

앞의 형식은 수식 1이 먼저 테스트된 후 참이면 수식 2가 수행되고, 거짓이면 수식 3이 수행되며 동시에 수식 2와 수식 3이 수행될 수는 없습니다. 

x = a> b? a : b;

이 문장은 a가 b보다 크면 a값을  x에 대입하고, 그렇지 않으면 b값을 x에 대입하고, 그렇지 않으면 b값을 x에 대입하는 의미를 가집니다. 결과는 다음과 같습니다. 

Result = 5

 

printf() 함수와 제어 문자

printf() 함수는 문자열 제어로 표준 출력에 관한 매개변수들을 형식화한 후 프로그램으로부터 자료를 읽어서 화면에 출력합니다.

 

(1) printf() 함수 문

printf() 함수의 기본 형식은 다음과 같습니다.

 

printf(제어문, arg1, arg2,...);

 

매개변수가 생략된 문자열 표시에는 printf 문의 '제어'를 출력하고자 하는 문자열로 바꾸어 사용합니다. 

예를 들면 다음과 같습니다.

 

printf("This is a 1st C_program.");

 

① 문자열 표시에 대한 예와 실행 결과입니다.

void main()
{
	printf("This is a 1st C_program.");
}

(실행 결과(출력))
	This is a 1st C_program.

② 문자열을 분리 처리

앞의 프로그램에서 문자열을 2개로 나누어 printf문으로 프로그래밍하여 한 줄에 출력하는 예제 프로그램과 결과는 다음과 같습니다. 

댓글