C language learning notes