[chapter 03] 변수와 데이터 입력~[chapter04] 연산자
03-1 변수
unsigned 정수 자료형
-정수형을 양수 전용으로 쓸 때 사용
실수 자료형
-float(출력 변환 문자: %f)
-double(출력 변환 문자: %lf)
-long double(출력 변환 문자: %Lf)
-실수형은 저장하는 값에 따라 숫자가 정확하게 표현될 수도 안 될 수도 있음 ( 컴퓨터에서 실수를 표현하는 방식이 오차를 갖고 있기 때문에 일정 범위 내의 값을 사용하기)
문자열 저장
-char 배열명[문자열길이+1] = 문자열;
-컴파일러가 문자열의 끝에 널문자를 자동으로 추가하기 때문에 배열의 크기를 하나 더 잡는 것
const를 사용한 변수
-const 자료형 변수형 = 값;
-const를 사용 시 초기화 된 값을 바꿀 수 없음
-선언과 동시에 초기화를 해야 함
03-2 데이터 입력
scanf 함수
-입력 문자들을 스캔해 원하는 형태의 데이터로 바꿔주는 함수로 어떤 데이터로 변환할 지는 변환 문자를 통해 결정, 키보드에서 입력한 값을 변수에 저장할 때 사용
-사용법) 변수의 형태에 맞는 변환 문자를 사용하고 입력할 변수 앞에 &를 붙이기 예) scanf("%d",&a);
-유의점)
1. 변수명을 지정할 때 % 붙이기
2. 함수에서 사용한 변환 문자와 맞는 형태의 데이터를 입력
-응용)
여러 개의 변환문자를 나열해 한 번에 2개 이상의 변수에 값 입력
예) scanf("%d%lf", &a, &b);
=> int형 변수 a와 double형 변수에 입력 시 위처럼 사용
문자와 문자열
-char형 변수에 문자 입력 시 키보드로 입력하는 모든 문자가 대상 (스페이스바나 엔터조차도 하나의 문자로 전달)
-스페이스,엔터,탭 등을 만나면 바로 전까지 전달되므로 공백 없이 연속으로 입력하기
-문자열은 char 배열에 &s 변환 문자를 사용, 배열명에는 &를 붙이지 않음
04-1 산술 연산자, 관계 연산자, 논리 연산자
산술 연산자와 대입 연산자
-산술 연산자는 수학에서의 연산자를 의미, 더하기(+), 빼기(-), 곱하기(*), 나누기(/), 나머지(%)가 있다
-대입 연산자(=)는 오른쪽의 수식의 결과를 왼쪽 변수에 저장
예)
a=10;
sum=a+b;
-나누기 연산자와 나머지 연산자
나누기는 나누기 연산자인 /을 사용하고, 피연산자의 형태에 따라 결과가 달라지니 주의
증감 연산자
-증감 연산자(++,--)는 하나의 연산자로 대입 연산까지 수행하므로 변수의 값을 1씩 증가시키거나 감소시킬 때 사용
예) a라는 int형 변수에 1을 더하려면 a=a+1; =>증감 연산자 이용 시 ++a;
-++a로 표현한다는 말은 증감 연산자가 대입 연산을 포함하므로 피연산자의 값이 바뀐다는 의미, 증감 연산자의 피연산자로 상수를 사용 불가능
-전위 표기와 후위 표기
관계 연산자
-조건,관계에 따라 명령 실행 시 필요
-대소 관계 연산자, 동등 관계 연산자가 존재
-대소 관계는 < 또는 > 등의 기호 사용, 동등 관계 ==나 != 기호 사용하며 연산자는 모두 피연산자를 2개 사용, 연산의 결과값은 1 또는 0
논리 연산자
-논리 관계를 판단하는 데 사용
1. &&는 논리곱(AND) 연산자로 2개의 피연산자로 모두 참일 때만 연산 결과가 참
2. ||는 논리합(OR) 연산자로 둘 중에 하나라도 참이면 참
3. !는 논리부정(NOT) 연산자로 그 참과 거짓을 바꿀 때 사용
-숏 서킷 룰은 좌항만으로 &&와 || 연산 결과를 판별하는 기능으로 좌항이 참이거나 거짓이면 우황에 관계없이 결과는 참이거나 거짓
연산의 결과값을 처리하는 방법
-연산을 실행한 후 연산의 결과값을 변수에 저장하지 않으면 그 값은 버려짐
04-2 그 외 유용한 연산자
형 변환 연산자
-형 변환 연산자는 피연산자를 하나 가지며 피연산자의 값을 원하는 형태로 바꿈
-사용: (자료형)피연산자
예) 정수를 실수로 바꾸는 경우 (double)10 -> 10.0
-처음부터 a와b를 double형으로 선언하면 좋지만 double형은 저장공간이 크고 연산 속도가 느리며 오차가 발생하므로 int형을 기본형으로 사용하고 형변환해서 사용
-자동 형 변환 (=암시적인 형 변환, 묵시적인 형 변환)
컴파일러는 컴파일 과정에서 피연산자의 형태가 다르면 형태를 일치하는 작업을 수행
sizeof 연산자
-피연산자의 크기를 바이트 단위로 계산해서 알려줌 (데이터 크기 확인, 메모리 동적으로 할당하는 작업)
-sizeof가 연산자이므로 기본적으로 피연산자에 괄호를 사용할 필요가 없지만 예외가 있으므로 그냥 괄호를 사용하기
복합 대입 연산자
-연산 결과를 다시 피연산자에 저장
-산술 복합대입 연산자: +=, -=, *=, /=, &=
-복합대입 연산자는 저장 공간과 연산 공간이 다름
콤마 연산자
-콤마 연산자는 한 번에 여러 개의 수식을 차례로 나열할 때 사용, 대입 연산자와 함께 사용 시 괄호 필요
조건 연산자
-유일한 삼항 연산자로 ?와: 기호를 함께 사용해 표현
-첫 번째 피연산자가 참이면 두 번째 피연산자가 결과값, 첫 번째 피연산자가 거짓이면 세 번째 피연산자가 결과값
-사용: (a > b) ? a : b
비트 연산자
-비트 논리곱 연산자(&): 두 비트가 모두 1인 경우에만 1로 계산
-비트별 배타적 논리합 연산자(^): 두 비트가 서로 다른 경우에만 1로 계산
-비트별 논리합 연산자(|): 두 비트 중 하나라도 참이면 1로 계산
-비트별 부정 연산자(~): 피연산자가 하나로 ~연산은 1을 0으로 바꾸고 0을 1로 바꿈
-비트 이동 연산자: <<는 비트를 왼쪽으로 이동, >>은 비트를 오른쪽으로 이동
연산자 우선 순위
-단항 > 이항 > 삼항 연산자 순서로
-산술 > (비트 이동) > 관계 > 논리 연산자 순서로
기본 숙제
추가 숙제