C - メモリとポインタ - 何を指しているの? - 配列変数
Head First C ―頭とからだで覚えるCの基本、 David Griffiths(著)、 Dawn Griffiths(著)、 中田 秀基(監修)、 木下 哲也(翻訳)、 O’Reilly Media)の 2章(メモリとポインタ - 何を指しているの?)、p.57(恋愛ゲーム)の解答を求めてみる。
Makefile
all: a.out
./a.out
a.out: main.c
cc main.c
コード
main.c
#include <stdio.h>
int main()
{
int contestants[] = {1, 2, 3};
int *choice = contestants;
contestants[0] = 2; // {2, 2, 3}
contestants[1] = contestants[2]; // {2, 3, 3}
contestants[2] = *choice; // {2, 3, 2}
printf("%i\n", contestants[2]); // 2
for (size_t i = 0; i < 3; i++)
{
printf("contestants[%li]: %i\n", i, contestants[i]);
}
}
入出力結果(Terminal, Zsh)
% make
cc main.c
./a.out
2
contestants[0]: 2
contestants[1]: 3
contestants[2]: 2
%