전체 글 34

위대한 유산

16장의 내용은 돌아가신 핍의 부모님을 대신해서 핍을 양육한 누나가 괴한에게 망치로 머리를 가격당해 상처를 입고 그로 인해 달라진 누나의 성격을 보여주는 것으로 끝난다. 의 주인공인 핍의 시점에서 과연 누나의 부상은 어떤 의미였을지에 대해 생각해보았다. 책의 서술상으로는 자신의 거짓말과 자신의 행동이 누나의 부상이 연결돼 죄책감을 느끼지만, 그 죄책감이 누나가 잘못되어 슬프고 무섭다기보단 누나의 남편인 조가 자신의 거짓말에 실망할까 봐 걱정하는 모습이 더 부각된다. 누나의 변화하는 상태에 대한 서술만 있을 뿐 그에 관한 핍의 감정에 대한 서술이 적다는 점을 발견했다. 과연 핍의 감정은 어땠을까. 사람이 다쳐 수술까지 받았는데 이 상황이 기쁘다고 할 사람은 없겠지만 핍이 그동안 당해온 학대를 생각한다면 누..

카테고리 없음 2023.11.10

while 반복 루프에서 scanf()의 반환값 사용하기

위와 같이 결과값이 나오도록 코드짜기 #include int main(void) { int num, sum = 0; int status; // scanf function의 반환값 printf("Enter an integer (q to quit) : "); status = scanf("%d", &num); // return value of scanf(), 정수가 입력되면 status에 1이라는 값 저장, 문자를 입력했으면 정수로 입력을 받을 수 없기 때문에 status에 0이 들어감 while (status == 1) { sum = sum + num; printf("Enter next integer (q to quit) : "); status = scanf("%d", &num); } printf("Sum=..

자료형 변환

- promotions in assignments short s = 64; int i = s; float f = 3.14f; double d = f; - demotion in assignments: 큰 것을 작은 것에 넣음 -> trucaiton d = 1.25; f = 1.25; f = 1.123f; d = f + 1.234; // double로 변한해서 반환 f = f + 1.234; // conversion from double to float, possible loss of date - ranking of types in operaitons 1. long double > double > float 2.unsigned long long, long long 3. unsigned long, long 4..

증가, 감소 연산자

int a = 0; a++; // a = a + 1, a += 1 printf("%d\n", a); ++a; // a = a + 1. a += 1 printf("%d\n", a); double b = 0; b++; printf("%f\n", b); ++b; printf("%f\n", b); - 후위 증가 연산자: 숫자가 증가될 것을 예약하는 형태 int i = 1, int j = 1; int i_post, pre_j; i_post = i++; pre_j = ++j; printf("%d %d\n", i, j); printf("%d %d\n", i_post, pre_j); // 2,2 1,2 int i = 3; int l = 2 * --i; printf("%d %d\n", i, l); i = 1; l = 2..

연산자 우선순위, 나머지 연산자

연산자 결합법칙 ( ) 왼쪽에서 오른쪽 + - (단항) 오른쪽에서 왼쪽 * / 왼쪽에서 오른쪽 + - 왼쪽에서 오른쪽 = 오른쪽에서 왼쪽 a=b=60; b=60 -> b=a=60 example: while문을 이용해 초를 입력 받아 시, 분, 초로 나타내기 #include int main() { int seconds = 0, minutes = 0, hours = 0; printf("Input seconds: "); scanf("%d", &seconds); while (seconds>=0) { minutes = seconds / 60; seconds %= 60; hours = minutes / 60; minutes %= 60; printf("%d hour, %d minutes, %d seconds\n", ..

더하기, 빼기, 곱하기, 나누기 연산자

int main() { printf("%d\n", 1 + 2); int income, salary, bonus; income = salary = bonus = 100; // triple assignment salary = 100; bonus = 30; income = salary + bonus; // 1-value vs r-value, income&salary&bonus: l-value, salary+bounus: 일시적 r-value\ int takehome, tax; tax = 20; takehome = income - tax; int a, b; a = -7; b = -a; b = +a; // + does nothing return 0; } - 이항 연산자 (Binary operator) 피연산자 2..

대입 연산자와 몇 가지 용어들

- = : 연산자로써 기능, 등호의 개념이 아니라 대입의 개념 - Data object (object) : 데이터가 메모리 안에 있다면 object - L-value (object locator value): 메모리를 차지하고 있는 특정 데이터 객체 - R-value (value of an expression): 수정 가능한 L-value에게 대입될 수 있는 있지만, 자기 자신은 L-value가 될 수 없는 것들즉, 값 자체, 계산이 끝나면 사라짐 EXAMPLE const int TWO = 2; int a; int b; int c; - a,b,c는 수정 가능한 L-value - TWO는 수정 불가능한 L-value (여기서 =는 대입이 아니라 초기화) a=42; b=a; c=TWO * (a+b); - 4..