File Pointers
What is persistent data:
Data that does not disappear when your program stops running.
Like a normal program, we can see the running result printed on screen, but the actual result is not stored anywhere. After we finish running the program and clear the screen, there's nothing recorded of the program, it's like it's never existed.
But sometimes we want to record data when running the program. Like if you wrote a program for a game, you want to record every player's moves, so you can go back to it if something went wrong later. You'll have a record of data of all the moves the player had taken during the game. So when the program finished running, we still have all the data of what happened when the program was running. That is "persistant data".
In order to store persistent data, we need to open a file, and then write data from the program into that file. "FILE" is a special data structer in C that is used to store persistent data. When working with them, we will be using pointers to them, FILE*.