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

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

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

상수에 대한 설명과 예시를 정리하고, 그 후에 선언과 수식에 대해 가볍게 알아보겠습니다. 

상수

상수(constant)는 값을 지정하는 수와 문자(문자열 포함)가 포함됩니다. 또한 상수값 만으로 성립된 상수식(constant expression)도 같은 의미입니다. 그리고 상수에서는 float와 double의 구별이 없습니다. 왜냐하면 컴퓨터가 float를 double로 인식하기 때문입니다. 

상수는 10진수, 8진수, 16진수가 지원되나 2진수는 지원되지 않습니다. 상수의 출력은 변환 문자 %f 또는 %e를 사용하여 수행하되 특별한 지정이 없는 경우엔 소수점 아래 6자리까지 출력합니다. 

정수형 상수(integer constant)는 하나 이상의 숫자로 구성됩니다. 숫자 사이엔 공란이 허용되지 않으며, 숫자 간을 구분하는 콤마는 사용할 수 없습니다. 

 

(예) 표현 예

1. 상수 : 10

2. 문자열 상수 : "this is a student one.\n"

3. 상수식 : 111 + 22 - 3

상수식에서 특정 변수가 자료형이 선언되면 상수식이 아닙니다. 즉 111 + 22 - 3은 상수 식이나 111 + 22 - i에서 i가 int로 선언되어 있으면 상수 식이 아닙니다. 

(예) 1.234.567 /* 콤마는 허용되지 않음. 잘못된 상수 표현임 */

4. 십진수 상수 : 10

(예) 10L(long형) 또는 long int 10

출력 변환 문자 : %d

5. 8진수 : 숫자의 앞에 o를 표시하면 8진수로 인식합니다.

(예) o+수 즉 o5

출력 변환 문자 : printf문에서 형 반환(type conversion) 문자 %o를 사용하며, 맨 앞의 o는 출력되지 않습니다.

6. 16진수 : 수의 앞에 ox 또는 oX를 표시하면 16진수로 인식합니다.

출력 변환 문자 : 형 변환 문자 %x를 사용합니다. 역시 수 앞의 ox는 출력하지 않습니다. 

표기 : 0부터 9, a부터 f(또는 A부터 F)로 표현됩니다.

예를 들면 hexa = ox7EA; 입니다.

 

 

선언과 수식

프로그램을 작성하는 이유는 자료의 처리라고 할 수 있습니다. 이 자료는 변수와 상수라는 요소로 구성되는데, 우선 상수란 변하지 않는 값을 가지는 수를 의미하고 변수란 프로그램 내에서 여러 가지 값을 저장하기 위한 기억 공간의 이름을 의미한다고 보면 됩니다. 

수학적인 개념에서 다음의 수식을 살펴보겠습니다.

 

x + 5 = ?

 

위의 수식에서 5는 그 값이 정해진 값이고 x는 여러 가지의 값이 주어질 수 있을 것이며 그 합을 구하여 결과 값으로 취하게 되는데 결과 값 또한 x의 값이 변하게 되면 그 결과 값도 달라질 것입니다. 

이 수식을 C 언어의 표현으로 고치면 다음과 같습니다.

 

sum = x + 5

 

sum은 x의 값과 5의 값을 더한 결과를 저장하기 위한 장소이며 x는 사용자가 제시한 값을 저장하기 위한 공간으로 볼 수 있는데 이와 같이 변화하는 값을 저장하기 위한 객체로 변수라는 것을 사용합니다.

이러한 변수의 사용은 사용자가 이 변수에서 취급하고자 하는 자료의 형태를 파악한 후 원하는 자료형으로 정의하여 사용합니다.

C에서 변수는 사용되기 이전에 C 컴파일러가 그에 대한 정보를 알고 있어야 하는데 이는 프로그래머가 변수를 사용하기 이전에 C 컴파일러에게 알려 주어야 하며 이 것을 선언이라고 합니다.

 

자료형 변수명;

 

자료형의 위치엔 여러 가지 자료형을 쓰면 되고 변수명은 영문자를 시작으로 영문자, 숫자, 기호 문자의 조합으로 만들면 되나 C 컴파일러가 사용을 제한한 예약어를 변수명으로 사용해선 안됩니다. 

여러 개의 변수를 사용할 경우 같은 자료형이라면 처음에 자료형을 나타내고 원하는 변수명을 나열하면 한 줄에 여러 변수를 같이 선언할 수도 있습니다. 다음 프로그램은 이와 같은 변수의 선언을 설명하기 위한 예제입니다. 

 

변수의 선언의 예

#define <stdio.h>
main()
{
	int x, sum;
    x = 4;
    sum = x + 5;
    printf("sum = %d\n", sum);
}

 

앞의 프로그램에서 5,6,7번째 줄을 보면 x, sum이란 변수가 사용되었으며 이 사용의 이전에 4번째 줄에서 x와 sum이 정수형 변수로 사용하겠다는 정보를 알려주었으며 이로 컴파일러는 이후의 x와 sum 변수에 대해 처리할 수 있게 되는 것입니다. 

선언은 두 가지 목적을 가지고 있으며 첫 번째는 변수와 관련된 값을 저장하기 위한 메모리 내의 적당한 공간을 확보하라고 컴파일러에게 알려주는 역할이며 다른 하나는 컴파일러가 시스템에게 올바른 연산을 수행하라고 지시할 수 있게 정보를 제공하기 위한 목적으로 선언을 합니다.

수식은 상수, 변수, 연산자, 그리고 함수 호출의 조합에 의해 구성됩니다. 또한 각각의 그 자체로도 하나의 수식을 구성할 수 있습니다. 예를 들면 다음과 같은 형태는 모두 수식을 표현하고 있는 것입니다. 

 

x = 5

x + y

sum = x + 5

sqrt(6.4)

5.0 * x - tan(9.0/x)

 

수식은 하나의 값을 결과 값으로 갖는데 예를 들면 x + y 수식은 하나의 값을 갖으며 이 값은 x와 y 변수의 값에 의존합니다.

댓글