char my_chars[] = "Hello, World!";
int daily_temperature[NUM_DAYS];
double stock_prices_history[NUM_DAYS];
printf("%zd\n", sizeof(stock_prices_history)); // 2920
printf("%zd\n", sizeof(double) * NUM_DAYS); // 2920
printf("%zd\n", sizeof(stock_prices_history[0])); // 8
int my_numbers[5];
my_numbers[0] = 1; // 방의 개념이다. 0번째, 1번째, ... 방이라고 생각하면 좋을 것 같다.
my_numbers[1] = 2;
my_numbers[2] = 4;
my_numbers[3] = 2;
my_numbers[4] = 1024;
printf("%d\n", my_numbers[0]);
printf("%d\n", my_numbers[1]);
printf("%d\n", my_numbers[2]);
printf("%d\n", my_numbers[3]);
printf("%d\n", my_numbers[4]);
scanf("%d", &my_numbers[0]);
이런 식으로 몇 번째 방에 어떤 수를 넣는지의 개념으로 생각하면 될 것 같다.
scanf는 저런 식으로 사용하면 된다.
scanf("%d", &my_numbers[0]);
는 scanf("%d", my_numbers);
처럼 사용될 수 있다. 배열은 배열 자체로 이미 주소이므로 ampersand를 굳이 붙일 필요가 없다.
/* Runtime Error */
my_numbers[5] = 123; // out of bound. Runtime Error
my_numbers = 7; // compile error
my_numbers[5]는 존재할 수 없는 주소이므로 runtime error가 생기게 된다.