Variables "They're something in a program that stores values, this can be a number, a\ character, a pointer a float or arrays of those things." Variable Type "the type of a variable is what sort of thing the variable is, what kind of\ value it stores, what operators work on it and the size of it" Examples int integer = 34; char character = 'a'; char * string = "1234"; float floating-point = 12.0; double doubleFloatingPoint = 111112.0; int * pointer = &integer; int array[4] = {0,2,3,4}; Special types of integers unsigned int unsignedInteger = 4; short shortInteger = 5; long longInteger = 1212121212122121212; uint8_t unsigned8bitInteger = 255; uint32_t unsigned32bitInteger = 323232323233223232323; printf("Hello World! %d %c %s\n\a",122,'A',"A String"); "printf is a function a part of stdio(Standard I/O) that allows a program to\ print to serial out(the terminal) it takes a format string and values after that" Format String "The format string is what you want printf to print out with, with stuff like\ %d that are placeholders that let you also print out the value of variables you\ supply to printf as arguments" so in printf("hello world!\n"); "hello world!\n" is the format string '\n' and '\a' are special characters, '\n' stands for new line and is like pressing enter. '\a' is the alarm bell and makes a beeping sound %d is a placeholder for an integer, printed out in decimal(base 10) %c is a placeholder for a character %s is a placeholder for a string for more information look at 'man printf' What is a function? "A math function is a when a domain is paired to a co-domain, in programming,\ piece of code that you can run multiple times and does an action" Function return "the value a function outputs" Function argument "the input to a function" //How do you run a function foobar(foo, bar); also known as a function call; a function is also an expression printf("hello world"); is a function call, you're running printf with the argument "hello world." "where foobar(int, int) is a function and foo and bar are arguments that whole piece of code would then evaluate to the output of foobar" eg. "if foobar(foo, bar) outputs jia then foobar(foo, bar); == jia" Function Definition "defining a function is when you write down what a function takes as arguments, what the function returns and what code the function runs" unsigned int foobar(int foo, int bar) { int lar = 0; lar = (foo - bar) * 82 + bar; return lar; } "the above is a function that returns a variable of type 'unsigned int' and takes two arguments foo and bar that are of type 'int'. it runs the code inside of the squiggly brackets {}." Code blocks "any code inside of an {} are a code block, you can put code blocks inside of code blocks, that's called nesting code blocks. When you make a new code block you should indent the code inside of the block" printf("foobar\n"); i++; if( i == 0) { printf("barfoo\n"); j++; } "you indent, by putting a tab in front of every line, a tab is a big space" "When you have a nested code block, you indent another level, or have an extra tab in front of every line" foobar while (barfoo){ foobar if (baz) { qux bazqux } foobarbaz } Foo Bar Baz Qux "Foo Bar Baz Qux are placeholder names , they don't mean anything and you can put your own stuff in place of them." https://www.ietf.org/rfc/rfc3092.txt for more information Variable Declarations and Assignments //When you declaring a variable, you tell the compiler that there is a variable //named foo of type bar that now exists. You can only use a variable after //declaring/defining it. int foo; //however, right now foo is "uninitialized", meaning there is no value being //stored in foo, which means you can't use it. Initializing a function is just //giving it a value. foo = 0; //a function that is defined and initialized bar = 12; //assigning a value to a variable just changes the value stored by a variable. foo = 10; foo = bar; foo = foobar(12); foobar(34); Statements and Expressions "Expressions evaluate to a value, where as statements do a thing. In c all \ statements are also expressions but you can ignore that" a + b //is a statement foobar(34); is a statement because function calls are statements if (a + b) {} is an if statement i++; increments i or adds 1 to it. PRACTICE/REVIEW: "identify the parts of the below code" int main(int argc, char * argv[] ) { if(argc > 1) { printf("you gave me %d arguments\n",argc); } else { printf("you didn't give me any arguments\n"); } return argc - 1; }