>>223 プロトタイプと main は省略.不正な式にも対応しない.
int expression(char **p) {
  int x = term(p);
  if (**p == '+') ++(*p), x += expression(p);
  return x;
}
int term(char **p) {
  int x = factor(p);
  if (**p == '*') ++(*p), x *= term(p);
  return x;
}
int factor(char **p) {
  int x;
  if (**p == '(') ++(*p), x = expression(p), ++(*p);
  else for (x = 0; isdigit(**p); ) x *= 10, x += **p - '0', ++(*p);
  return x;
}