Introduction 1 Why the C Language? 1 The C Programming For Dummies Approach 2 How This Book Works 3 Icons Used in This Book 4 Parting Thoughts 5 Part 1: The ABs of C 7 Chapter 1: A Quick Start for the Impatient 9 What You Need to Program 9 Command Prompt Programming 10 IDE Programming 11 Installing Code::Blocks 12 Touring the Code::Blocks workspace 13 Your First Program 14 Coding at the command prompt 15 Building a new Code::Blocks project 16 Building and running 18 Chapter 2: The Programming Thing 21 The History of Programming 21 Reviewing early programming history 21 Introducing the C language 22 The Programming Process 23 Understanding programming 23 Writing source code 24 Compiling and linking 26 Running and testing 27 Chapter 3: Anatomy of C 29 Parts of the C Language 29 Keywords 30 Functions 31 Operators 33 Variables and values 33 Statements and structure 33 Comments 35 Behold the Typical C Program 37 Understanding C program structure 37 Setting the main() function 38 Returning something to the operating system 39 Adding a function 40 Part 2: C Programming 101 43 Chapter 4: Trials and Errors 45 Display Stuff on the Screen 45 Displaying a humorous message 45 Introducing the puts() function 46 Adding more text 47 Commenting out a statement 49 Goofing up on purpose 49 More Text Output Nonsense 51 Displaying text with printf() 52 Introducing the printf() function 52 Understanding the newline 53 Employing escape sequences 54 Goofing up on purpose again 55 Chapter 5: Values and Simple Math 57 A Venue for Various Values 57 Understanding values 58 Displaying values with printf() 59 Minding the extra zeros 61 The Computer Does the Math 61 Doing simple arithmetic 61 Reviewing the float-integer thing 63 Pretending integers are floats 64 Chapter 6: A Place to Put Stuff 67 Values That Vary 67 Setting up a quick example 68 Introducing data types 69 Using variables 70 Variable Madness! 73 Using more-specific data types 73 Working with several variables 75 Assigning a value upon creation 77 Reusing variables 77 Constants Always the Same 79 Using the same value over and over 79 Constants in your code 80 Putting constants to use 81 Chapter 7: Input and Output 83 Character I/O 83 Understanding input and output devices 83 Fetching characters with getchar() 84 Using the putchar() function 86 Working with character variables 87 Text I/O, but Mostly I 88 Storing strings 89 Introducing the scanf() function 90 Reading a string with scanf() 91 Reading values with scanf() 93 Using fgets() for text input 94 Chapter 8: Decision Making 97 What If? 97 Making a simple comparison 97 Introducing the if keyword 99 Comparing values in various ways 100 Knowing the difference between = and == 102 Forgetting where to put the semicolon 103 Multiple Decisions 104 Making more-complex decisions 104 Adding a third option 105 Multiple Comparisons with Logic 106 Building a logical comparison 106 Adding some logical operators 107 The Old Switch Case Trick 108 Making a multiple-choice selection 108 Understanding the switch-case structure 110 Taking no breaks 111 The Weird ?: Decision Thing 112 Chapter 9: Loops, Loops, Loops 115 A Little Déjà Vu 115 The Thrill of for Loops 116 Doing something x number of times 116 Introducing the for loop 117 Counting with the for statement 119 Looping letters 120 Nesting for loops 121 The Joy of the while Loop 123 Structuring a while loop 123 Using the do while loop 125 Loopy Stuff 126 Looping endlessly 126 Looping endlessly but on purpose 127 Breaking out of a loop 128 Adding multiple for loop conditions 129 Screwing up a loop 130 Chapter 10: Fun with Functions 133 Anatomy of a Function 133 Constructing a function 133 Prototyping (or not) 136 Functions and Variables 139 Using variables in functions 139 Sending a value to a function 140 Sending multiple values to a function 142 Creating functions that return values 143 Returning early 145 Constants of the Global Kind 147 Introducing defined constants 147 Putting defined constants to use 148 Part 3: Build Upon What You Know 151 Chapter 11: The Unavoidable Math Chapter 153 Math Operators from Beyond Infinity 153 Incrementing and decrementing 154 Prefixing the ++ and -- operators 156 Discovering the remainder (modulus) 158 Saving time with assignment operators 158 Math Function Mania 160 Exploring some common math functions 161 Suffering through trigonometry 163 It''s Totally Random 166 Spewing random numbers 166 Making the numbers more random 167 The Holy Order of Precedence 170 Getting the order correct 170 Forcing order with parentheses 171 Chapter 12: Give Me Arrays 173 Behold the Array 173 Avoiding arrays 173 Understanding arrays 174 Initializing an array 177 Playing with character arrays (strings) 177 Working with empty char arrays 179 Sorting arrays 181 Multidimensional Arrays 183 Making a two-dimensional array 183 Going crazy with three-dimensional arrays 186 Declaring an initialized multidimensional array 188 Arrays and Functions 189 Passing an array to a function 189 Returning an array from a function 191 Chapter 13: Fun with Text 193 Character Manipulation Functions 193 Introducing the CTYPEs 193 Testing characters 195 Changing characters 197 String Functions Galore 198 Reviewing string functions 198 Comparing text 199 Building strings 200 Fun with printf() Formatting 202 Formatting floating point 202 Setting the output width 204 Aligning output 206 Gently Down the Stream 207 Demonstrating stream input 207 Dealing with stream input 208 Chapter 14: Structures, the Multivariable 211 Hello, Structure 211 Introducing the multivariable 211 Understanding struct 213 Filling a structure 215 Making an array of structures 216 Weird Structure Concepts 218 Putting structures within structures 218 Passing a structure to a function 219 Chapter 15: Life at the Command Prompt 221 Conjure a Terminal Window 221 Starting a terminal window 222 Running code in text mode 223 Arguments for the main() Function 225 Reading the command line 225 Understanding main()''s arguments 227 Time to Bail 229 Quitting the program 229 Running another program 230 Chapter 16: Variable Nonsense 233 Variable Control 233 Typecasting into disbelief 233 Creating new things with typedef 235 Making static variables 238 Variables, Variables Everywhere 241 Using external variables 241 Creating an external structure variable 243 Enumerating 245 Chapter 17: Binary Mania 249 Binary Basics 249 Understanding binary 249 Outputting binary values 251 Bit Manipulation 253 Using the bitwise operator 253 Using bitwise & 256 Operating exclusively with XOR 257 Understanding the ~ and ! operators 259 Shifting binary values 259 Explaining the binbin() function 263 The Joy of Hex 264 Part 4: The Advanced Part 267 Chapter 18: Introduction to Pointers 269 The Biggest Problem with Pointers 269 Sizing Up Variable Storage 270 Understanding variable storage 270 Reading a variable''s size 271 Checking a variable''s location 275 Reviewing variable storage info 278 The Hideously Complex Topic of Pointers 279 Introducing the pointer 279 Working with pointers 282 Chapter 19: Deep into Pointer Land 285 Pointers and Arrays 285 Getting the address of an array 285 Working pointer math in an array 287 Substituting pointers for array notation 293 Strings Are Pointer-Things 294 Using pointers to display a string 294 Using a pointer to declare a string 295 Building an array of pointers 296 Sorting strings 300 Pointers in Functions 302 Passing a pointer to a function 302 Returning a pointer from a function 303 Chapter 20: Memory Chunks and Linked Lists 305 Give Me Memory! 306 Introducing the malloc() function 306 Creating string storage 308 Using the calloc() function 309 Getting.
C Programming for Dummies