From LXF Wiki
Variables are supposed to be named so as to make it easy to remember what kind of data they store and indeed the nature of the data stored. Hungarian Notation, being the most commonly used, dictates that variables start with an identifier specifying what kind of data is contained in them, viz - 'iBirthYear' for an integer holding a birth year, 'txtName' for a text box holding a name, etc.
Other popular variable names are i through to m for integer variables used inside loops. The reason for this choice is owing to computing's strong influence from mathematics. Generally speaking, in mathematical equations x, y, and z are the variables you want to solve for, m or n are the number of items in a set or collection, and powers are usually a, b, or c. This was morphed into FORTRAN, where (unless otherwise typed) single-letter variables A through to H were real numbers, I to N were integers, and O to Z were real. As I, J, K, etc were already declared as integers, it made sense to use them as throw-away variables in your loops. This is one of the few mathematical principles that still survives in mass-production programming today, despite most people not realising its history.
Programming is often described as a content between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning.