3장. 변수와 연산자
3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / int main(void) { 3+4; // 덧셈 결과를 저장할 필요가 있다. return 0; }
3-2 데이터 저장을 위한 변수 변수란 무엇인가? 다양한 형태(자료형)의 변수 3-2 데이터 저장을 위한 변수 변수란 무엇인가? 데이터를 저장할 수 있는 메모리 공간에 붙여진 이름 다양한 형태(자료형)의 변수 정수형 : char, int, long 실수형 : float, double
3-2 데이터 저장을 위한 변수 변수의 선언 및 대입 대입 연산자(=): 값을 대입하기 위한 용도의 연산자 3-2 데이터 저장을 위한 변수 변수의 선언 및 대입 대입 연산자(=): 값을 대입하기 위한 용도의 연산자 int main(void) { int val; // int형 변수 val의 선언 val = 20; // 변수 val에 20을 저장 . . . . . .
3-2 데이터 저장을 위한 변수 변수를 이용한 예제 #include <stdio.h> int main(void) { 3-2 데이터 저장을 위한 변수 변수를 이용한 예제 #include <stdio.h> int main(void) { int a, b; // 쓰레기 값으로 초기화 int c=30, d=40; a=10; b=20; printf("%d %d \n", a, b); printf("%d %d \n", c, d); return 0; }
3-2 데이터 저장을 위한 변수 변수 선언 시 주의 사항 1 변수를 함수 내에 선언할 경우, 등장 위치! 3-2 데이터 저장을 위한 변수 변수 선언 시 주의 사항 1 변수를 함수 내에 선언할 경우, 등장 위치! #include <stdio.h> int main(void) { int a; int b; a=10; b=20; printf("%d %d \n", a, b); return 0; }
< 표 3-1 : 적절치 않은 변수의 이름> 3-2 데이터 저장을 위한 변수 변수 선언 시 주의 사항 2 첫째 : 변수의 이름은 알파벳, 숫자 언더바(_)로 구성 둘째 : 대 소문자 구분 셋째 : 변수의 이름은 숫자로 시작 불가, 키워드 사용 불가 넷째 : 공백이 포함될 수 없음 적절치 않은 변수의 이름 적절치 않은 이유 int 7th_val 변수의 이름이 숫자로 시작 int live_inthe# #과 같은 특수 문자는 올 수 없다. int kor year 변수 이름에 공백이 삽입될 수 없다. < 표 3-1 : 적절치 않은 변수의 이름>
3-2 데이터 저장을 위한 변수 완성된 덧셈 프로그램 /* simpleadd2.c */ 3-2 데이터 저장을 위한 변수 완성된 덧셈 프로그램 /* simpleadd2.c */ #include <stdio.h> int main(void) { int result; //변수 선언 result=3+4; //덧셈 결과 저장 printf("덧셈 결과 : %d \n", result); printf("%d 더하기 %d는 %d 입니다. \n", 3, 4, result); printf("변수 result에 저장된 값 : %d \n", result); return 0; }
3-2 데이터 저장을 위한 변수 변수와는 다른 상수! 상수도 메모리 공간을 할당 받는다. 하지만 데이터의 변경이 불가능하다. 3-2 데이터 저장을 위한 변수 변수와는 다른 상수! 상수도 메모리 공간을 할당 받는다. 하지만 데이터의 변경이 불가능하다. 그림 3-1
3-3 C 언어의 다양한 연산자 대입 연산자와 산술 연산자 예제 op1.c, 표 3-2 참조 연산자 연산의 예 의미 결합성 = a=20 대입 + a=4+3 덧셈 - a=4-3 뺄셈 * a=4*3 곱셈 / a=4/3 나눗셈 % a=4%3 나머지
3-3 C 언어의 다양한 연산자 기타 대입 연산자 대입 연산자와 산술 연산자가 합해져서 다양한 형태의 대입 연산자 정의 예제 op2.c 참조 그림 3-3
3-3 C 언어의 다양한 연산자 부호 연산으로서 +, - 연산자 증가 감소 연산자 단항 연산자로서 +, - 예제 op3.c 참조 증가 감소 연산자 예제 op4.c, op5.c, 표 3-3 참조 연산자 연산의 예 의미 결합성 ++a printf(“%d”, ++a) 선 증가, 후 연산 a++ printf(“%d”, a++) 선 연산, 후 증가 --b printf(“%d”, --a) 선 감소, 후 연산 b-- printf(“%d”, a--) 선 연산, 후 감소
3-3 C 언어의 다양한 연산자 관계 연산자(비교 연산자) 두 피연산자의 관계(크다, 작다 혹은 같다)를 따지는 연산자 true(논리적 참, 1), false(논리적 거짓, 0) 반환 예제 op6.c, 표 3-4 참조 연산자 연산의 예 의미 결합성 < a<b a가 b보다 작은가 > a>b a가 b보다 큰가 == a==b a와 b가 같은가 != a!=b a와 b가 같지 않은가 <= a<=b a가 b보다 작거나 같은가 >= a>=b a가 b보다 크거나 같은가
3-3 C 언어의 다양한 연산자 논리 연산자 and, or, not을 표현하는 연산자 true(1), false(0) 반환 예제 op7.c, 표 3-5 참조 연산자 연산의 예 의미 결합성 && a&&b true면 true 리턴 || a||b 하나라도 true면 true 리턴 ! !a true면 false를, false면 true 리턴
3-3 C 언어의 다양한 연산자 비트 단위 연산자 콤마(,) 연산자 ~, &, ^, |, <<, >> 둘 이상의 변수 동시 선언 시 둘 이상의 문장을 한 줄에 선언 시 함수의 매개변수 전달 시 예제 comma_op.c 참조
3-3 C 언어의 다양한 연산자 연산자의 우선 순위 연산자의 결합성 연산 순서를 결정짓는 순위 우선 순위가 같은 연산자들의 연산 방향 3+4*5/2-10
3-4 scanf 함수의 이해 scanf 함수를 이용한 정수의 입력 예제 simpleadd3.c 참조 그림 3-7 int main(void) { int val; scanf("%d", &val); . . . . . 그림 3-7
3-4 scanf 함수의 이해 scanf 함수를 이용한 입력 형태의 지정 입력 형태의 지정이 가능 simpleadd4.c 참조 그림 3-8
< 표 3-7 : C99를 기준으로 표준화된 키워드들> auto char default else for inline return static union while _Bool _Complex restrict enum goto int short struct unsigned break const do extern if long signed switch void case continue double float _Imaginary register sizeof typedef volatile < 표 3-7 : C99를 기준으로 표준화된 키워드들>