본문 바로가기

Study_C, C++

(52)
[홍정모의 따라하며 배우는 C언어] 6.18 루프 안에서 함수의 반환값 사용하기 6.18 루프 안에서 함수의 반환값 사용하기 두 숫자를 입력받아서 첫번째로 입력받은 숫자를 두번째로 입력받은 숫자만큼의 횟수로 곱하기 #define _CRT_SECURE_NO_WARNINGS #include int compute_pow(int base, int exp);// funciton prototype ->컴파일시 컴파일러에게 // 이러한 함수가 있다는 것을 알려줌. linking과정에서 컴파일러가 // function body를 찾아서 함수의 호출 부분과 연결시켜줌 int main() { int base, exp, result;// 이 변수들은 main문 안에서만 사용 가능 -> main문에서 선언된 // 변수들의 영역은 main문 while (scanf("%d %d", &base, &exp) =..
[홍정모의 따라하며 배우는 C언어] 6.17 for 루프를 배열과 함께 사용하기 #define _CRT_SECURE_NO_WARNINGS #include #define SIZE 5 int main() { /*int i1 = 0; int i2 = 1; int i3 = 2; printf("%d\n", i1); printf("%d\n", i2); printf("%d\n", i3);*/ int my_arr[SIZE]; for (int i = 0; i 없어도 되지만 다른 용도 때문에 잠시 집어넣음 }// 이 더미가 없으면 값이 대입되는걸 디버깅시 보기 힘듦 for (int i = 0; i < SIZE; i++) printf("%d ", m..
[홍정모의 따라하며 배우는 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..