출처 : Smile Han
예제 11.1 변형
#include <stdio.h>
int main(void) {
double temp = 36.5; // 체온을 저장함
double backup; // temp 값을 복사해 둘 변수이다
double* pt; // temp를 가리킬 포인터이다
pt = &temp; // temp의 주소를 pt에 저장함
backup = *pt; // pt를 통해 temp 값을 읽어서 복사함
printf("temp=%.1f\t &temp=%p\n", temp, &temp);
printf("pt=%p\t &pt=%p\t *pt=%.1f\n", pt, &pt, *pt);
printf("backup=%.1f\t &backup=%p\n", backup, &backup);
return 0;
}
예제 12.1 변형
#include <stdio.h>
struct Book { // 책의 정보를 저장하는 구조체이다
char title[50];
int pages;
double price;
};
int main(void) {
struct Book harry, python, shelf[100];
// 구조체 변수 2개와 구조체 배열을 선언함
harry.pages = 450;
// 해리의 페이지 수를 저장함
python.price = 32000.0;
// 파이썬의 가격을 저장함
shelf[0].pages = 300;
// 배열 첫 번째 요소의 페이지 수를 저장함
printf("%d %f %d\n",
harry.pages, python.price, shelf[0].pages);
// 저장된 값을 출력함
return 0;
}
예제 12.2 변형
#include <stdio.h>
struct Employee { // 직원 정보를 저장하는 것
char id[10];
char name[10];
int base, bonus, total;
double tax;
};
int main(void) {
struct Employee e = { "EMP-001", "kim", 3000000, 500000 };
// 직원의 정보를 초기화시킴
e.total = e.base + e.bonus;
// 총급여를 계산함
e.tax = e.total * 0.033;
// 세금을 계산함
printf("%s %s %d %d %d %f\n",
e.id, e.name, e.base, e.bonus, e.total, e.tax);
// 직원의 정보를 출력함
return 0;
}
예제 12.3 변형
#include <stdio.h>
struct Product { // 상품 정보를 저장하는 것
char code[10];
char item[10];
int qty, sold, remain;
double rate;
};
int main(void) {
struct Product a, b = { "P-001", "apple", 100, 73 };
// 변수 선언 및 초기화를 함
b.remain = b.qty - b.sold;
// 재고를 계산함
b.rate = b.sold / (double)b.qty * 100;
// 판매율을 계산함
a = b;
// 전체 복사
printf("%s %s %d %d %d\n",
b.code, b.item, b.qty, b.sold, b.remain);
// b의 정보를 출력함
printf("%s %s %d %d %d\n",
a.code, a.item, a.qty, a.sold, a.remain);
// a의 정보를 출력함
return 0;
}