/* Storing Data!
 * One type of data that we can store in C
 * is the integer. Integers are basically 
 * whole numbers, and are good for recording
 * things like counters, ages, etc.  */
int numberOfTimesSteveHasSwumThisWeek;
int dansAge = 18;
int bensAge = dansAge;
int terrysAge = dansAge + 1;

/* When creating variables, you can give the
 * variable an initial value, or not. If you
 * don't, C will assign the variable a default
 * value of "zero", whatever that means for 
 * the type.  */

/* Incidentally, what I'm writing right now is
 * called a "comment". It's a line in your C
 * program that the compiler will skip over, so
 * it's used a lot by designers to tell people
 * what the code is trying to do. Very important.
 * You will do a lot of this in your assignments,
 * or you will lose a lot of marks. */
 
/* Oh yes. Also, when you assign the value of one
 * variable to another variable, they are only 
 * connected for that instant. If I change dansAge
 * later on, it doesn't affect bensAge, even though
 * Ben originally got his age value from Dan. */
 
/* Another data type is the floating point number.
 * This stores non-integers, up to a certain degree
 * of precision. Floating point numbers can be stored
 * with either the "float" keyword or the "double"
 * keyword, depending on how much precision you need. */
float pi = 3.1415926535;
double e = 2.71482123123;
double jaesung = 19.25;
float jin = jaesung + e - pi;

/* Naming Conventions!
 * When creating your variable names, always remember
 * to give your variables meaningful names. Also, there
 * are different ways to write them, but in this course
 * we try to use the "camel hump" method.
 * For example:  numberOfPiesFarhangHasEatenToday.
 * The first word is in lowercase, and every word after
 * that has the first letter capitalized.  */

/* Something else I should mention:
 * Variable names are case-sensitive. That is, the 
 * variable stevesAge is different from the variable
 * StevesAge. Be careful about this one. Stick to 
 * a single naming convention.  */

/* One more thing. 
 * When giving a variable a value, you can either 
 * assign it a "literal" value, or assign it to a 
 * variable. Literals are things like actual numbers,
 * or letters, or whatever.  */

/* Characters are stored in the following way:  */
char satyamsMiddleInitial = 'H';
/* Character literals have to have single quote 
 * characters around them, otherwise it might
 * get mistaken for a variable name. */
char xiaofansMiddleInitial = '%';
char charlesMiddleInitial = '0';

/* If for some reason, you want to convert the value
 * stored in a variable into another type, you can
 * tell the compiler to do so by "casting" it, as 
 * follows:  */
int ericsAge = (int) jaesung;
int ericasAge = (int) 19.99999;
/* What would Erica's age be here?  19. Why?
 * Through the magic of Truncation.  */
 
