본문 바로가기

Study_C, C++

(52)
[홍정모의 따라하며 배우는 C언어] 5.6 연산자 우선순위와 표현식 트리 ~ 5.8 증가, 감소 연산자 5.6 연산자 우선순위와 표현식 트리 사칙연산 우선순위는 수학 계산 순서와 동일 수학 계산 시 쓰는 ( )와 ( ) 연산자는 다름 -> 계산 시 쓰는 ( )는 primary expression, ( ) 연산자는 함수 호출이나 형 변환 시 쓰이는 연산자. 우선순위는 동일 * Primary Expression : operator 없이 하나의 operand로만 구성된 표현식. - Identifier (a, int_max), Constant ('A', 1000), Parenthetical Expression (괄호식. (4 + a)) 등이 있다 - 기본적인 연산자 우선순위 ( ) -> 왼쪽에서 오른쪽으로 대입 +, - (단항) -> 오른쪽에서 왼쪽. 숫자가 먼저 들어가고 그 앞에 부호가 들어감 *, / -> 왼..
[홍정모의 따라하며 배우는 C언어] 5.3 더하기, 빼기, 부호 연산자들 ~ 5.5 나누기 연산자 5.3 더하기, 빼기, 부호 연산자들 #include int main() { int income, salary, bonus; income = salary = bonus = 100;// triple assignment. bonus에 100 대입 -> 그 값을 salary에 대입 // -> 그 값을 income에 대입 salary = 100; bonus = 30; income = salary + bonus; int a, b; a = -7;// - operator b = -a; b = +a;// + operator는 아무 기능도 하지 않음 1.0f + 2;// 자료형이 다른 변수끼리 계산시 표현 범위가 더 큰 자료형으로 결과값이 저장됨 return 0; } 이항 연산자(binary operator) : 피연산..
[홍정모의 따라하며 배우는 C언어] 4.10 scanf() 함수의 사용법 ~ 5.2 대입 연산자와 몇 가지 용어들 4.10 scanf() 함수의 사용법 #define _CRT_SECURE_NO_WARNINGS #include int main() { int i; float f; char str[30]; scanf("%d %f %s", &i, &f, str);// string은 &사용 X printf("%d %f %s\n", i, f, str); return 0; } Output : 123 3.14 hello 입력 -> 123 3.140000 hello scanf()는 띄어쓰기와 줄바꿈으로 입력을 구분 #define _CRT_SECURE_NO_WARNINGS #include int main() { char c; scanf("%c", &c); printf("%i\n", c);// 입력받은 문자의 ASCII Code 출력 ..
[홍정모의 따라하며 배우는 C언어] 4.9 printf() 함수가 인자들을 해석하는 과정 4.9 printf() 함수가 인자들을 해석하는 과정 #include int main() { float n1 = 3.14;// 4 bytes double n2 = 1.234;// 8 bytes int n3 = 1024;// 4 bytes printf("Right case :\n"); printf("%f %f %d\n\n", n1, n2, n3); // Note the warnings in output window printf("Wrong cases :\n"); printf("%d %d %d\n\n", n1, n2, n3);// 4, 4, 4 (N, N, N) printf("%lld %lld %d\n\n", n1, n2, n3);// 8, 8, 8 (N, N, Y) printf("%f %d %d\n\n",..
[홍정모의 따라하며 배우는 C언어] 4.6 명백한 상수들 ~ 4.8 변환 지정자의 수식어들 4.6 명백한 상수들 명백한 상수(Manifest Constants) : #define(전처리기)를 이용해서 선언이 된 기호적 상수 #include #include // INT_MAX, ... , etc-> 정수의 표현 범위를 알려줌 #include // FLT_MAX, ... , etc-> 실수의 표현 범위를 알려줌 #define PI 3.141592// manifest constants, symbolic constants int main() { printf("PI is %f\n", PI); printf("Biggest int : %d\n", INT_MAX); printf("One byte in this system is %d bits\n", CHAR_BIT); printf("Smallest norma..
[홍정모의 따라하며 배우는 C언어] 4.3 문자열이 메모리에 저장되는 구조 ~ 4.5 기호적 상수와 전처리기 4.3 문자열이 메모리에 저장되는 구조 문자열은 크기가 제각각일 경우가 많아 마지막이 어딘지 표현하기 위해 배열의 마지막 칸에 null character ('\0')를 집어넣음 #include int main() { int a = 1; int int_arr[10] = { 0,1,2,3,4,5,6,7,8,9 };// 수배열의 값 초기화 printf("%i %i %i\n", int_arr[0], int_arr[1], int_arr[9]); // 배열의 각 값들에 접근, 배열의 첫번째 index는 0 return 0; } Output : 0 1 9 #include int main() { char c = 'a'; char str1[10] = "Hello";// 문자열 초기화시는 큰따옴표 사용. Hello + '..
[홍정모의 따라하며 배우는 C언어] 3.13 불리언형 ~ 4.2 sizeof 연산자 3.13 불리언형 불리언형 : 논리 연산시 사용. 논리 자료형 이라고도 부름 불리언형은 참(1), 거짓(0)의 두가지 값만 가질 수 있음 -> 내부적으론 정수형 참, 거짓을 표현하는 bit 1자리만을 사용하나 자료형이 가질 수 있는 최소 크기가 1byte 이므로 불리언형은 1byte 크기를 가짐 #include #include // true와 false를 직접 문자로 넣어 사용 가능 int main() { printf("%u\n", sizeof(_Bool));// 1byte _Bool b1;// 불리언형 자료형 선언 b1 = 0;// false b1 = 1;// true printf("%d\n", b1);// 형식 지정자가 따로 없음 -> 정수 형식지정자 사용 bool b2, b3;// stdbool.h..
[홍정모의 따라하며 배우는 C언어] 3.11 부동소수점형 ~ 3.12 부동소수점형의 한계 3.11 부동소수점형 컴퓨터에서 실수(float)를 표현하거나 다룰 때 부동소수점형 사용 앞의 '부' 는 한자 뜰 부로, 소수점이 떠다니듯 움직인다는 뜻 가수 부분을 뜻하는 mantissa라는 용어가 로그에서도 사용되는데 의미가 비슷하면서도 다르므로 가급적 사용하지 말자고 함 -> 대신 significand 사용 유효숫자(significant number)가 다르다 = 정밀도가 다르다 유효숫자가 많으면 많을수록 더 정밀해짐 실수를 컴퓨터에서 부동소수점 자료형으로 저장을 할 때 Normalized significand 형태로 바꿔서 저장 * 10진수(-314.625) -> 32bit 부동소수점 변환 예시 가수부는 mantissa 혹은 fraction 음수이므로 sign bit = 1 -314.625 (10..