본문 바로가기

C언어

2강 - structure of a C program

expressions (표현식, 수식)

0. 특징

1) 값을 나타내려고 변수, 상수, 연산자로 구성된 식

2) 항상 결과(반환)값을 갖음

operator (연산자)

-산술연산자(+,-,*,/,%) -관계연산자(<,<=,==,!=다르다) -논리연산자(&&and,||or,!)

-증감연산자(++,--) -비트연산자(&,|,^,~,<<)

2. operand(피연산자)

-상수 -변수

 

primary expression(일차식): 오직 하나의 operand로 이루어진

-identifier -constants -parenthetical expression(괄호식) ex)(2+3)이것도일차식

 

prefix expression(전위연산자 수식): operator가 operand 앞에 나옴

x= ++a -> ➀ a = a+1 -> ➁ x = a (a에 1을 더하고 x에 a를 대입) (선증가 후연산)

 

postfix expression(후위연산자 수식): operator가 operand 앞에 나옴

x= a++ -> ➀ x = a -> ➁ a = a+1 (x에 a를 대입하고 a에 1을 더함) (선연산 후증가)

1) operand(피연산자)로 변수만 가능하다. (상수나 일반수식이 올 수 없다.)

 

Unary expression(단항식): operator-operand (피연산자가 1개)

-sizeof(int): data형의나 값의 크기를 바이트 수로 표시

-+a -++a -형변환 연산자 ex) (float) x

 

Binary expression(이항식): operand-operator-operand

 

Ternary expression(삼항식): A ? B : C=> A가 참이면 값 B 아니면 값 C

 

assignment expression(할당수식):

1. variable = expression => 우측의 값을 좌측에 저장(대입)하라. ex) a*b = c (X)

2. 대입연산자는 오른쪽부터 해석 A = B = C = 0 <=> A = ( B = ( C = 0))

 

precedence & associativity

precedence: 다른 연산자들 사이의 우선순위

2. associativity: (괄호를 활용한) 같은 순위의 연산자들 사이의 우선순위

L -> R: 왼쪽부터 계산하기 - R -> L: 오른쪽부터 계산하기

 

 

 

type conversion –implicit type conversion

-explicit type conversion

 

implicit type conversion:

0. conversion rank

assignment expression에서의 type conversion

(등호로 대입하면서 형변환이 나타난다.) (형의 확장과 축소 모두 가능하다.)

1) ‘실수’ = ‘정수’: (확장)

2) ‘정수’ = ‘실수’: (축소) 실수의 소수점이 버려진다.

3) 바이트 작은 것 = 바이트 큰 것: 변환하고자 하는 정수의 바이트 크기에 맞춰서 상위 바이 상위 바이트가 소멸된다. (부호가 바뀌거나하는 현상가능)

2. promotion(형 확장): 하나 이상의 데이터 형이 혼합식을 구성할 때 가장 큰 데이터 형에 맞춰 형변환이 이루어지는 규칙

(혼합식에서의 형변환) (확장만 가능하다->conversion rank를 따른다.)

연산 직전에 가장 큰 데이터 형으로 다른 데이터들이 형확장이 일어난다.

ex) (5/4 + 1.0/2) => (5/4 + 1.0/2.0) => (1 + 0.5) => (1.0 + 0.5) = 1.5

 

explicit type conversion

(시스템, 운영체제, 컴파일러의 종류에 따라 각 데이터형의 메모리 저장크기가 다를 수 있다.)

(type) expression .

ex1) (float)35/2 => 35.0/2 => 17.5

ex2) (float)(35/2) => (float)(17) => 17.0

statements

null statements

 

2. expression statements

 

3. return statements

 

4. compound statements

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

11-2강 구조체 포인터  (0) 2020.04.09
11-1강 - 구조체 기본  (0) 2020.04.09
9강 - Pointer Application  (0) 2020.03.31
3강 - 함수 (function)  (0) 2020.03.02
1강 - Introduction to C  (0) 2020.03.02