본문 바로가기

728x90
반응형

Study_C, C++/홍정모의 따라하며 배우는 C언어

(50)
[홍정모의 따라하며 배우는 C언어] 6.16 배열과 런타임 에러 6.16 배열과 런타임 에러 #include #define NUM_DAYS 365 int main() { char my_chars[] = "Hello, World!"; int daily_temperature[NUM_DAYS]; double stock_prices_history[NUM_DAYS]; printf("%zd\n", sizeof(stock_prices_history)); printf("%zd\n", sizeof(double)*NUM_DAYS); printf("%zd\n", sizeof(stock_prices_history[0])); return 0; } Output : 2920-> 365 * 8byte(double) 2920 8-> 글자 하나 (double 하나) #include int main(..
[홍정모의 따라하며 배우는 C언어] 6.13 탈출조건 루프 do while ~ 6.15 중첩된 루프들 6.13 탈출조건 루프 do while while : 진입 조건을 판단 do while : loop의 탈출 조건을 판단 #define _CRT_SECURE_NO_WARNINGS #include int main() { const int secret_code = 337; int guess = 0; /* printf("enter secret code : "); scanf("%d", &guess); while (guess != secret_code) { printf("enter secret code : ");// 동일한 기능을 하는 코드들이 중복 scanf("%d", &guess); } */ do { printf("enter secret code : "); scanf("%d", &guess); } while (..
[홍정모의 따라하며 배우는 C언어] 6.10 다양한 대입 연산자들 (그리고 어셈블리 코드 확인법) ~ 6.12 제논의 역설 시뮬레이션 예제 6.10 다양한 대입 연산자들 (그리고 어셈블리 코드 확인법) 어셈블리 코드 확인법 : 디버거 실행 후 우클릭 -> go to disassembly 혹은 Debug -> windows -> disassembly (Ctrl+Alt+D) 6.11 콤마 연산자 #include int main() { int x, y, z; z = x = 1, y = 2; printf("x = %d, y = %d, z = %d \n", x, y, z); z = (x = 1), (y = 2); printf("x = %d, y = %d, z = %d \n", x, y, z); z = ((x = 1), (y = 2)); // z = (1, 2). comma operator는 가장 오른쪽에 있는 값이 전체 expression의 값임 p..
[홍정모의 따라하며 배우는 C언어] 6.5 사실과 거짓 ~ 6.9 for는 유연해요 6.5 사실과 거짓 #include int main() { int tv, fv; tv = (1 2);// false printf("True is %d\n", tv); printf("False is %d\n", fv); return 0; } Output : True is 1 False is 0 #include int main() { int i = -5; int j = 5; while (i) printf("%d is true\n", i++); printf("%d is false\n", i); printf("\n"); while (j) printf("%d is true\n", j--); printf("%d is false\n", j); return 0; } 0이면 fa..
[홍정모의 따라하며 배우는 C언어] 6.1 while 반복 루프에서 scanf()의 반환값 사용하기 ~ 6.4 관계 연산자 (Relational Operators) 6.1 while 반복 루프에서 scanf()의 반환값 사용하기 정수를 반복해서 입력받고 문자 'q'를 입력시 입력받은 정수들의 총 합을 출력하는 프로그램 #define _CRT_SECURE_NO_WARNINGS #include int main() { int num, sum = 0; int status; printf("Enter an integer (q to quit) : "); status = scanf("%d", &num);// scanf()의 반환값은 입력받은 변수의 갯수 // num에 정수가 아닌 문자 입력시 status = 0 while (status == 1) {// 관계 연산자. ==는 equality operator sum += num; printf("Enter next integer (q..
[홍정모의 따라하며 배우는 C언어] 5.9 표현식과 문장 ~ 5.12 함수의 인수와 매개변수 5.9 표현식과 문장 표현식(Expression) : 연산자, 피연산자들의 조합으로 만들어짐 문장(Statement) : 표현식들로 만들어짐 표현식은 값을 계산해냄 ex) 4 + 21 = 25, 2 > 1 (결과값 = 1) q = 5 * 2 위의 표현식은 값을 대입하는 표현식이나, 표현식의 주요 기능은 값을 계산하는 것임 대입하는 것은 side effect (부가적 기능) 임 #include int main() { /* example of statement */ int x, y, apples;// declaration statement apples = 3;// assignment statement ;// null statement 7; x = 1 + (y = 5);// y = 5 is subexpress..
[홍정모의 따라하며 배우는 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) : 피연산..

728x90
반응형