Here’s a toy‑silly, *golf‑friendly* C program that prints **“Hello World”** by walking an array of characters **recursively**.
The recursion stops when it sees the terminating `'\0'` – i.e. the standard string terminator.
```c
#include <stdio.h>
/* The “Hello World” string stored in an array of chars */
char s[] = "Hello World";
/* Recursively print the i‑th character until we hit the terminator */
void f(int i){
if (s[i]){ /* if s[i] != '\0' */
putchar(s[i]); /* print the current character */
f(i+1); /* recurse for the next one */
}
}
int main(void){
f(0); /* start recursion at the first char */
return 0;
}
```
---
### How it works
| Step | What happens |
|------|--------------|
| `main()` | Calls `f(0)` – we start at the first character. |
| `f(i)` | If `s[i]` is not the null terminator, `putchar()` outputs that character and `f(i+1)` is called. |
| Repetition | The same happens for the next index, and so on. |
| Base case | When `s[i]` becomes `'\0'`, the `if` condition fails and the recursion unwinds. |
Feel free to *compress* it further (e.g. by using a macro or the integer ASCII codes). For a code‑golf entry, the above is already pretty short and definitely “silly” enough to be a fun challenge!