{"product_id":"c-programming-for-dummies-isbn-9781119740247","title":"C Programming For Dummies","description":"\u003cp\u003e\u003cb\u003eGet an A grade in C\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAs with any major language, mastery of C can take you to some \u003ci\u003every\u003c\/i\u003e interesting new places. Almost 50 years after it first appeared, it's still the world's most popular programming language and is used as the basis of global industry's core systems, including operating systems, high-performance graphics applications, and microcontrollers. This means that fluent C users are in big demand at the sharp end in cutting-edge industries—such as gaming, app development, telecommunications, engineering, and even animation—to translate innovative ideas into a smoothly functioning reality.\u003c\/p\u003e \u003cp\u003eTo help you get to where you want to go with C, this 2nd edition of \u003ci\u003eC Programming For Dummies\u003c\/i\u003e covers everything you need to begin writing programs, guiding you logically through the development cycle: from initial design and testing to deployment and live iteration. By the end you'll be \u003ci\u003eau fait\u003c\/i\u003e with the do's and don'ts of good clean writing and easily able to produce the basic—and not-so-basic—building blocks of an elegant and efficient source code.\u003c\/p\u003e \u003cul\u003e \u003cli\u003eWrite and compile source code\u003c\/li\u003e \u003cli\u003eLink code to create the executable program\u003c\/li\u003e \u003cli\u003eDebug and optimize your code\u003c\/li\u003e \u003cli\u003eAvoid common mistakes\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003eWhatever your destination: tech industry, start-up, or just developing for pleasure at home, this easy-to-follow, informative, and entertaining guide to the C programming language is the fastest and friendliest way to get there!\u003c\/p\u003e \u003cp\u003e\u003cb\u003eIntroduction\u003c\/b\u003e\u003cb\u003e 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhy the C Language? 1\u003c\/p\u003e \u003cp\u003eThe C Programming For Dummies Approach 2\u003c\/p\u003e \u003cp\u003eHow This Book Works 3\u003c\/p\u003e \u003cp\u003eIcons Used in This Book 4\u003c\/p\u003e \u003cp\u003eParting Thoughts 5\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart 1: The ABs of C 7\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1: A Quick Start for the Impatient\u003c\/b\u003e\u003cb\u003e 9\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhat You Need to Program 9\u003c\/p\u003e \u003cp\u003eCommand Prompt Programming 10\u003c\/p\u003e \u003cp\u003eIDE Programming 11\u003c\/p\u003e \u003cp\u003eInstalling Code::Blocks 12\u003c\/p\u003e \u003cp\u003eTouring the Code::Blocks workspace 13\u003c\/p\u003e \u003cp\u003eYour First Program 14\u003c\/p\u003e \u003cp\u003eCoding at the command prompt 15\u003c\/p\u003e \u003cp\u003eBuilding a new Code::Blocks project 16\u003c\/p\u003e \u003cp\u003eBuilding and running 18\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2: The Programming Thing\u003c\/b\u003e\u003cb\u003e 21\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe History of Programming 21\u003c\/p\u003e \u003cp\u003eReviewing early programming history 21\u003c\/p\u003e \u003cp\u003eIntroducing the C language 22\u003c\/p\u003e \u003cp\u003eThe Programming Process 23\u003c\/p\u003e \u003cp\u003eUnderstanding programming 23\u003c\/p\u003e \u003cp\u003eWriting source code 24\u003c\/p\u003e \u003cp\u003eCompiling and linking 26\u003c\/p\u003e \u003cp\u003eRunning and testing 27\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3: Anatomy of C\u003c\/b\u003e\u003cb\u003e 29\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eParts of the C Language 29\u003c\/p\u003e \u003cp\u003eKeywords 30\u003c\/p\u003e \u003cp\u003eFunctions 31\u003c\/p\u003e \u003cp\u003eOperators 33\u003c\/p\u003e \u003cp\u003eVariables and values 33\u003c\/p\u003e \u003cp\u003eStatements and structure 33\u003c\/p\u003e \u003cp\u003eComments 35\u003c\/p\u003e \u003cp\u003eBehold the Typical C Program 37\u003c\/p\u003e \u003cp\u003eUnderstanding C program structure 37\u003c\/p\u003e \u003cp\u003eSetting the main() function 38\u003c\/p\u003e \u003cp\u003eReturning something to the operating system 39\u003c\/p\u003e \u003cp\u003eAdding a function 40\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart 2: C Programming 101 43\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4: Trials and Errors\u003c\/b\u003e\u003cb\u003e 45\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDisplay Stuff on the Screen 45\u003c\/p\u003e \u003cp\u003eDisplaying a humorous message 45\u003c\/p\u003e \u003cp\u003eIntroducing the \u003ci\u003eputs() \u003c\/i\u003efunction 46\u003c\/p\u003e \u003cp\u003eAdding more text 47\u003c\/p\u003e \u003cp\u003eCommenting out a statement 49\u003c\/p\u003e \u003cp\u003eGoofing up on purpose 49\u003c\/p\u003e \u003cp\u003eMore Text Output Nonsense 51\u003c\/p\u003e \u003cp\u003eDisplaying text with \u003ci\u003eprintf()\u003c\/i\u003e 52\u003c\/p\u003e \u003cp\u003eIntroducing the \u003ci\u003eprintf() \u003c\/i\u003efunction 52\u003c\/p\u003e \u003cp\u003eUnderstanding the newline 53\u003c\/p\u003e \u003cp\u003eEmploying escape sequences 54\u003c\/p\u003e \u003cp\u003eGoofing up on purpose again 55\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 5: Values and Simple Math\u003c\/b\u003e\u003cb\u003e 57\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eA Venue for Various Values 57\u003c\/p\u003e \u003cp\u003eUnderstanding values 58\u003c\/p\u003e \u003cp\u003eDisplaying values with \u003ci\u003eprintf() \u003c\/i\u003e59\u003c\/p\u003e \u003cp\u003eMinding the extra zeros 61\u003c\/p\u003e \u003cp\u003eThe Computer Does the Math 61\u003c\/p\u003e \u003cp\u003eDoing simple arithmetic 61\u003c\/p\u003e \u003cp\u003eReviewing the float-integer thing 63\u003c\/p\u003e \u003cp\u003ePretending integers are floats 64\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 6: A Place to Put Stuff\u003c\/b\u003e\u003cb\u003e 67\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eValues That Vary 67\u003c\/p\u003e \u003cp\u003eSetting up a quick example 68\u003c\/p\u003e \u003cp\u003eIntroducing data types 69\u003c\/p\u003e \u003cp\u003eUsing variables 70\u003c\/p\u003e \u003cp\u003eVariable Madness! 73\u003c\/p\u003e \u003cp\u003eUsing more-specific data types 73\u003c\/p\u003e \u003cp\u003eWorking with several variables 75\u003c\/p\u003e \u003cp\u003eAssigning a value upon creation 77\u003c\/p\u003e \u003cp\u003eReusing variables 77\u003c\/p\u003e \u003cp\u003eConstants Always the Same 79\u003c\/p\u003e \u003cp\u003eUsing the same value over and over 79\u003c\/p\u003e \u003cp\u003eConstants in your code 80\u003c\/p\u003e \u003cp\u003ePutting constants to use 81\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 7: Input and Output\u003c\/b\u003e\u003cb\u003e 83\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCharacter I\/O 83\u003c\/p\u003e \u003cp\u003eUnderstanding input and output devices 83\u003c\/p\u003e \u003cp\u003eFetching characters with \u003ci\u003egetchar()\u003c\/i\u003e 84\u003c\/p\u003e \u003cp\u003eUsing the \u003ci\u003eputchar() \u003c\/i\u003efunction 86\u003c\/p\u003e \u003cp\u003eWorking with character variables 87\u003c\/p\u003e \u003cp\u003eText I\/O, but Mostly I 88\u003c\/p\u003e \u003cp\u003eStoring strings 89\u003c\/p\u003e \u003cp\u003eIntroducing the \u003ci\u003escanf() \u003c\/i\u003efunction 90\u003c\/p\u003e \u003cp\u003eReading a string with \u003ci\u003escanf()\u003c\/i\u003e 91\u003c\/p\u003e \u003cp\u003eReading values with \u003ci\u003escanf() \u003c\/i\u003e93\u003c\/p\u003e \u003cp\u003eUsing \u003ci\u003efgets() \u003c\/i\u003efor text input 94\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 8: Decision Making\u003c\/b\u003e\u003cb\u003e 97\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhat If? 97\u003c\/p\u003e \u003cp\u003eMaking a simple comparison 97\u003c\/p\u003e \u003cp\u003eIntroducing the \u003ci\u003eif \u003c\/i\u003ekeyword 99\u003c\/p\u003e \u003cp\u003eComparing values in various ways 100\u003c\/p\u003e \u003cp\u003eKnowing the difference between = and == 102\u003c\/p\u003e \u003cp\u003eForgetting where to put the semicolon 103\u003c\/p\u003e \u003cp\u003eMultiple Decisions 104\u003c\/p\u003e \u003cp\u003eMaking more-complex decisions 104\u003c\/p\u003e \u003cp\u003eAdding a third option 105\u003c\/p\u003e \u003cp\u003eMultiple Comparisons with Logic 106\u003c\/p\u003e \u003cp\u003eBuilding a logical comparison 106\u003c\/p\u003e \u003cp\u003eAdding some logical operators 107\u003c\/p\u003e \u003cp\u003eThe Old \u003ci\u003eSwitch Case \u003c\/i\u003eTrick 108\u003c\/p\u003e \u003cp\u003eMaking a multiple-choice selection 108\u003c\/p\u003e \u003cp\u003eUnderstanding the \u003ci\u003eswitch-case \u003c\/i\u003estructure 110\u003c\/p\u003e \u003cp\u003eTaking no breaks 111\u003c\/p\u003e \u003cp\u003eThe Weird ?: Decision Thing 112\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 9: Loops, Loops, Loops\u003c\/b\u003e\u003cb\u003e 115\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eA Little Déjà Vu 115\u003c\/p\u003e \u003cp\u003eThe Thrill of \u003ci\u003efor \u003c\/i\u003eLoops 116\u003c\/p\u003e \u003cp\u003eDoing something x number of times 116\u003c\/p\u003e \u003cp\u003eIntroducing the \u003ci\u003efor \u003c\/i\u003eloop 117\u003c\/p\u003e \u003cp\u003eCounting with the \u003ci\u003efor \u003c\/i\u003estatement 119\u003c\/p\u003e \u003cp\u003eLooping letters 120\u003c\/p\u003e \u003cp\u003eNesting \u003ci\u003efor \u003c\/i\u003eloops 121\u003c\/p\u003e \u003cp\u003eThe Joy of the \u003ci\u003ewhile \u003c\/i\u003eLoop 123\u003c\/p\u003e \u003cp\u003eStructuring a \u003ci\u003ewhile \u003c\/i\u003eloop 123\u003c\/p\u003e \u003cp\u003eUsing the \u003ci\u003edo while \u003c\/i\u003eloop 125\u003c\/p\u003e \u003cp\u003eLoopy Stuff 126\u003c\/p\u003e \u003cp\u003eLooping endlessly 126\u003c\/p\u003e \u003cp\u003eLooping endlessly but on purpose 127\u003c\/p\u003e \u003cp\u003eBreaking out of a loop 128\u003c\/p\u003e \u003cp\u003eAdding multiple \u003ci\u003efor \u003c\/i\u003eloop conditions 129\u003c\/p\u003e \u003cp\u003eScrewing up a loop 130\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 10: Fun with Functions\u003c\/b\u003e\u003cb\u003e 133\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAnatomy of a Function 133\u003c\/p\u003e \u003cp\u003eConstructing a function 133\u003c\/p\u003e \u003cp\u003ePrototyping (or not) 136\u003c\/p\u003e \u003cp\u003eFunctions and Variables 139\u003c\/p\u003e \u003cp\u003eUsing variables in functions 139\u003c\/p\u003e \u003cp\u003eSending a value to a function 140\u003c\/p\u003e \u003cp\u003eSending multiple values to a function 142\u003c\/p\u003e \u003cp\u003eCreating functions that return values 143\u003c\/p\u003e \u003cp\u003eReturning early 145\u003c\/p\u003e \u003cp\u003eConstants of the Global Kind 147\u003c\/p\u003e \u003cp\u003eIntroducing defined constants 147\u003c\/p\u003e \u003cp\u003ePutting defined constants to use 148\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart 3: Build Upon What You Know 151\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 11: The Unavoidable Math Chapter\u003c\/b\u003e\u003cb\u003e 153\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eMath Operators from Beyond Infinity 153\u003c\/p\u003e \u003cp\u003eIncrementing and decrementing 154\u003c\/p\u003e \u003cp\u003ePrefixing the ++ and -- operators 156\u003c\/p\u003e \u003cp\u003eDiscovering the remainder (modulus) 158\u003c\/p\u003e \u003cp\u003eSaving time with assignment operators 158\u003c\/p\u003e \u003cp\u003eMath Function Mania 160\u003c\/p\u003e \u003cp\u003eExploring some common math functions 161\u003c\/p\u003e \u003cp\u003eSuffering through trigonometry 163\u003c\/p\u003e \u003cp\u003eIt’s Totally Random 166\u003c\/p\u003e \u003cp\u003eSpewing random numbers 166\u003c\/p\u003e \u003cp\u003eMaking the numbers more random 167\u003c\/p\u003e \u003cp\u003eThe Holy Order of Precedence 170\u003c\/p\u003e \u003cp\u003eGetting the order correct 170\u003c\/p\u003e \u003cp\u003eForcing order with parentheses 171\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 12: Give Me Arrays\u003c\/b\u003e\u003cb\u003e 173\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBehold the Array 173\u003c\/p\u003e \u003cp\u003eAvoiding arrays 173\u003c\/p\u003e \u003cp\u003eUnderstanding arrays 174\u003c\/p\u003e \u003cp\u003eInitializing an array 177\u003c\/p\u003e \u003cp\u003ePlaying with character arrays (strings) 177\u003c\/p\u003e \u003cp\u003eWorking with empty \u003ci\u003echar \u003c\/i\u003earrays 179\u003c\/p\u003e \u003cp\u003eSorting arrays 181\u003c\/p\u003e \u003cp\u003eMultidimensional Arrays 183\u003c\/p\u003e \u003cp\u003eMaking a two-dimensional array 183\u003c\/p\u003e \u003cp\u003eGoing crazy with three-dimensional arrays 186\u003c\/p\u003e \u003cp\u003eDeclaring an initialized multidimensional array 188\u003c\/p\u003e \u003cp\u003eArrays and Functions 189\u003c\/p\u003e \u003cp\u003ePassing an array to a function 189\u003c\/p\u003e \u003cp\u003eReturning an array from a function 191\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 13: Fun with Text\u003c\/b\u003e\u003cb\u003e 193\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCharacter Manipulation Functions 193\u003c\/p\u003e \u003cp\u003eIntroducing the CTYPEs 193\u003c\/p\u003e \u003cp\u003eTesting characters 195\u003c\/p\u003e \u003cp\u003eChanging characters 197\u003c\/p\u003e \u003cp\u003eString Functions Galore 198\u003c\/p\u003e \u003cp\u003eReviewing string functions 198\u003c\/p\u003e \u003cp\u003eComparing text 199\u003c\/p\u003e \u003cp\u003eBuilding strings 200\u003c\/p\u003e \u003cp\u003eFun with \u003ci\u003eprintf() \u003c\/i\u003eFormatting 202\u003c\/p\u003e \u003cp\u003eFormatting floating point 202\u003c\/p\u003e \u003cp\u003eSetting the output width 204\u003c\/p\u003e \u003cp\u003eAligning output 206\u003c\/p\u003e \u003cp\u003eGently Down the Stream 207\u003c\/p\u003e \u003cp\u003eDemonstrating stream input 207\u003c\/p\u003e \u003cp\u003eDealing with stream input 208\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 14: Structures, the Multivariable\u003c\/b\u003e\u003cb\u003e 211\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eHello, Structure 211\u003c\/p\u003e \u003cp\u003eIntroducing the multivariable 211\u003c\/p\u003e \u003cp\u003eUnderstanding \u003ci\u003estruct\u003c\/i\u003e 213\u003c\/p\u003e \u003cp\u003eFilling a structure 215\u003c\/p\u003e \u003cp\u003eMaking an array of structures 216\u003c\/p\u003e \u003cp\u003eWeird Structure Concepts 218\u003c\/p\u003e \u003cp\u003ePutting structures within structures 218\u003c\/p\u003e \u003cp\u003ePassing a structure to a function 219\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 15: Life at the Command Prompt\u003c\/b\u003e\u003cb\u003e 221\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eConjure a Terminal Window 221\u003c\/p\u003e \u003cp\u003eStarting a terminal window 222\u003c\/p\u003e \u003cp\u003eRunning code in text mode 223\u003c\/p\u003e \u003cp\u003eArguments for the \u003ci\u003emain() \u003c\/i\u003eFunction 225\u003c\/p\u003e \u003cp\u003eReading the command line 225\u003c\/p\u003e \u003cp\u003eUnderstanding \u003ci\u003emain()’s \u003c\/i\u003earguments 227\u003c\/p\u003e \u003cp\u003eTime to Bail 229\u003c\/p\u003e \u003cp\u003eQuitting the program 229\u003c\/p\u003e \u003cp\u003eRunning another program 230\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 16: Variable Nonsense\u003c\/b\u003e\u003cb\u003e 233\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eVariable Control 233\u003c\/p\u003e \u003cp\u003eTypecasting into disbelief 233\u003c\/p\u003e \u003cp\u003eCreating new things with \u003ci\u003etypedef\u003c\/i\u003e 235\u003c\/p\u003e \u003cp\u003eMaking \u003ci\u003estatic \u003c\/i\u003evariables 238\u003c\/p\u003e \u003cp\u003eVariables, Variables Everywhere 241\u003c\/p\u003e \u003cp\u003eUsing external variables 241\u003c\/p\u003e \u003cp\u003eCreating an external structure variable 243\u003c\/p\u003e \u003cp\u003eEnumerating 245\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 17: Binary Mania\u003c\/b\u003e\u003cb\u003e 249\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBinary Basics 249\u003c\/p\u003e \u003cp\u003eUnderstanding binary 249\u003c\/p\u003e \u003cp\u003eOutputting binary values 251\u003c\/p\u003e \u003cp\u003eBit Manipulation 253\u003c\/p\u003e \u003cp\u003eUsing the bitwise | operator 253\u003c\/p\u003e \u003cp\u003eUsing bitwise \u0026amp; 256\u003c\/p\u003e \u003cp\u003eOperating exclusively with XOR 257\u003c\/p\u003e \u003cp\u003eUnderstanding the ~ and ! operators 259\u003c\/p\u003e \u003cp\u003eShifting binary values 259\u003c\/p\u003e \u003cp\u003eExplaining the binbin() function 263\u003c\/p\u003e \u003cp\u003eThe Joy of Hex 264\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart 4: The Advanced Part 267\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 18: Introduction to Pointers \u003c\/b\u003e\u003cb\u003e269\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Biggest Problem with Pointers 269\u003c\/p\u003e \u003cp\u003eSizing Up Variable Storage 270\u003c\/p\u003e \u003cp\u003eUnderstanding variable storage 270\u003c\/p\u003e \u003cp\u003eReading a variable’s size 271\u003c\/p\u003e \u003cp\u003eChecking a variable’s location 275\u003c\/p\u003e \u003cp\u003eReviewing variable storage info 278\u003c\/p\u003e \u003cp\u003eThe Hideously Complex Topic of Pointers 279\u003c\/p\u003e \u003cp\u003eIntroducing the pointer 279\u003c\/p\u003e \u003cp\u003eWorking with pointers 282\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 19: Deep into Pointer Land\u003c\/b\u003e\u003cb\u003e 285\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003ePointers and Arrays 285\u003c\/p\u003e \u003cp\u003eGetting the address of an array 285\u003c\/p\u003e \u003cp\u003eWorking pointer math in an array 287\u003c\/p\u003e \u003cp\u003eSubstituting pointers for array notation 293\u003c\/p\u003e \u003cp\u003eStrings Are Pointer-Things 294\u003c\/p\u003e \u003cp\u003eUsing pointers to display a string 294\u003c\/p\u003e \u003cp\u003eUsing a pointer to declare a string 295\u003c\/p\u003e \u003cp\u003eBuilding an array of pointers 296\u003c\/p\u003e \u003cp\u003eSorting strings 300\u003c\/p\u003e \u003cp\u003ePointers in Functions 302\u003c\/p\u003e \u003cp\u003ePassing a pointer to a function 302\u003c\/p\u003e \u003cp\u003eReturning a pointer from a function 303\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 20: Memory Chunks and Linked Lists\u003c\/b\u003e\u003cb\u003e 305\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGive Me Memory! 306\u003c\/p\u003e \u003cp\u003eIntroducing the malloc() function 306\u003c\/p\u003e \u003cp\u003eCreating string storage 308\u003c\/p\u003e \u003cp\u003eUsing the calloc() function 309\u003c\/p\u003e \u003cp\u003eGetting more memory 311\u003c\/p\u003e \u003cp\u003eFreeing memory 313\u003c\/p\u003e \u003cp\u003eLists That Link 314\u003c\/p\u003e \u003cp\u003eAllocating space for a structure 314\u003c\/p\u003e \u003cp\u003eCreating a linked list 316\u003c\/p\u003e \u003cp\u003eEditing a linked list 323\u003c\/p\u003e \u003cp\u003eSaving a linked list 328\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 21: It’s About Time\u003c\/b\u003e\u003cb\u003e 329\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhat Time is It? 329\u003c\/p\u003e \u003cp\u003eUnderstanding the calendar 330\u003c\/p\u003e \u003cp\u003eWorking with time in C 330\u003c\/p\u003e \u003cp\u003eTime to Program 331\u003c\/p\u003e \u003cp\u003eChecking the clock 331\u003c\/p\u003e \u003cp\u003eViewing a timestamp 333\u003c\/p\u003e \u003cp\u003eSlicing through the time string 334\u003c\/p\u003e \u003cp\u003eSnoozing 336\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart 5: And the Rest of It 337\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 22: Permanent Storage Functions\u003c\/b\u003e\u003cb\u003e 339\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eSequential File Access 339\u003c\/p\u003e \u003cp\u003eUnderstanding C file access 340\u003c\/p\u003e \u003cp\u003eWriting text to a file 341\u003c\/p\u003e \u003cp\u003eReading text from a file 342\u003c\/p\u003e \u003cp\u003eAppending text to a file 345\u003c\/p\u003e \u003cp\u003eWriting binary data 346\u003c\/p\u003e \u003cp\u003eReading binary data 348\u003c\/p\u003e \u003cp\u003eRandom File Access 350\u003c\/p\u003e \u003cp\u003eWriting a structure to a file 351\u003c\/p\u003e \u003cp\u003eReading and rewinding 353\u003c\/p\u003e \u003cp\u003eFinding a specific record 355\u003c\/p\u003e \u003cp\u003eSaving a linked list to a file 357\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 23: File Management\u003c\/b\u003e\u003cb\u003e 359\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDirectory Madness 359\u003c\/p\u003e \u003cp\u003eCalling up a directory 359\u003c\/p\u003e \u003cp\u003eGathering more file info 361\u003c\/p\u003e \u003cp\u003eSeparating files from directories 363\u003c\/p\u003e \u003cp\u003eExploring the directory tree 364\u003c\/p\u003e \u003cp\u003eFun with Files 365\u003c\/p\u003e \u003cp\u003eRenaming a file 365\u003c\/p\u003e \u003cp\u003eCopying a file 367\u003c\/p\u003e \u003cp\u003eDeleting a file 368\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 24: Beyond Mere Mortal Projects\u003c\/b\u003e\u003cb\u003e 369\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Multi-Module Monster 369\u003c\/p\u003e \u003cp\u003eLinking two source code files 370\u003c\/p\u003e \u003cp\u003eSharing variables between modules 372\u003c\/p\u003e \u003cp\u003eCreating a custom header file 374\u003c\/p\u003e \u003cp\u003eOther Libraries to Link 378\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 25: Out, Bugs!\u003c\/b\u003e\u003cb\u003e 381\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eSimple Tricks to Resolve Problems 381\u003c\/p\u003e \u003cp\u003eDocumenting the flow 382\u003c\/p\u003e \u003cp\u003eTalking through your code 382\u003c\/p\u003e \u003cp\u003eWriting comments for future-you 382\u003c\/p\u003e \u003cp\u003eThe Debugger 383\u003c\/p\u003e \u003cp\u003eDebugging setup 383\u003c\/p\u003e \u003cp\u003eWorking the debugger 385\u003c\/p\u003e \u003cp\u003eSetting a breakpoint 387\u003c\/p\u003e \u003cp\u003eWatching variables 388\u003c\/p\u003e \u003cp\u003eImproved Error Messages 390\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart 6: The Part of Tens 393\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 26: Ten Common Boo-Boos\u003c\/b\u003e\u003cb\u003e 395\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eConditional Foul-Ups 395\u003c\/p\u003e \u003cp\u003e== v = 396\u003c\/p\u003e \u003cp\u003eDangerous Loop Semicolons 397\u003c\/p\u003e \u003cp\u003eCommas in \u003ci\u003efor \u003c\/i\u003eLoops 398\u003c\/p\u003e \u003cp\u003eMissing break in a switch Structure 398\u003c\/p\u003e \u003cp\u003eMissing Parentheses and Curly Brackets 399\u003c\/p\u003e \u003cp\u003eDon’t Ignore a Warning 399\u003c\/p\u003e \u003cp\u003eEndless Loops 400\u003c\/p\u003e \u003cp\u003e\u003ci\u003escanf() \u003c\/i\u003eBlunders 401\u003c\/p\u003e \u003cp\u003eStreaming Input Restrictions 402\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 27: Ten Reminders and Suggestions\u003c\/b\u003e\u003cb\u003e 403\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eMaintain Good Posture 404\u003c\/p\u003e \u003cp\u003eUse Creative Names 404\u003c\/p\u003e \u003cp\u003eWrite a Function 405\u003c\/p\u003e \u003cp\u003eWork on Your Code a Little Bit at a Time 405\u003c\/p\u003e \u003cp\u003eBreak Apart Larger Projects into Several Modules 406\u003c\/p\u003e \u003cp\u003eKnow What a Pointer is 406\u003c\/p\u003e \u003cp\u003eAdd Whitespace before Condensing 407\u003c\/p\u003e \u003cp\u003eKnow When \u003ci\u003eif-else \u003c\/i\u003eBecomes \u003ci\u003eswitch-case \u003c\/i\u003e407\u003c\/p\u003e \u003cp\u003eRemember Assignment Operators 408\u003c\/p\u003e \u003cp\u003eWhen You Get Stuck, Read Your Code Out Loud 409\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart 7: Appendices\u003c\/b\u003e\u003cb\u003e 411\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eAppendix A: ASCII Codes 413\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eAppendix B: Keywords 419\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eAppendix C: Operators 421\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eAppendix D: Data Types 423\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eAppendix E: Escape Sequences 425\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eAppendix F: Conversion Characters 427\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eAppendix G: Order of Precedence 429\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIndex 431\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eDan Gookin\u003c\/b\u003e has been writing about technology for more than 30 yearsand wrote the very first For Dummies book in 1991! Since then he's written gizmo- and tech innovation-focused bestseller after bestseller, including \u003ci\u003eWord 2019 For Dummies, Android For Dummies, 2nd Edition,\u003c\/i\u003e and many more!   \u003c\/p\u003e\u003cul\u003e \u003cli\u003eDiscover C language and start coding in no time\u003c\/li\u003e \u003cli\u003eBuild your knowledge to create advanced projects and programs\u003c\/li\u003e \u003cli\u003eKickstart your new career as a C programmer\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003e\u003cb\u003eGet an A grade in C\u003c\/b\u003e \u003c\/p\u003e\u003cp\u003eLearning C can take you to some very interesting new places. Because it's the world's most popular programming language, fluent users are in high demand in cutting-edge industries, such as gaming, app development, telecomms, and even animation. This essential easy-to-follow, and fully updated resource covers everything you need to begin writing and applying good, clean codefrom initial design and testing to deployment and live iteration. Whatever your destination with C, this is the fastest and friendliest way to get there. \u003c\/p\u003e\u003cp\u003e\u003cb\u003eInside...\u003c\/b\u003e \u003c\/p\u003e\u003cul\u003e \u003cli\u003eObtain free programming tools\u003c\/li\u003e \u003cli\u003eCreate and debug code\u003c\/li\u003e \u003cli\u003eExplore text input and output\u003c\/li\u003e \u003cli\u003eUnderstand computer math\u003c\/li\u003e \u003cli\u003eMaster data types\u003c\/li\u003e \u003cli\u003eGet friendly with pointers\u003c\/li\u003e \u003cli\u003eExplore files and structures\u003c\/li\u003e \u003cli\u003eAvoid silly mistakes\u003c\/li\u003e \u003c\/ul\u003e","brand":"For Dummies","offers":[{"title":"Default Title","offer_id":47988875886821,"sku":"NP9781119740247","price":34.99,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9781119740247.jpg?v=1761781875","url":"https:\/\/k12savings.com\/products\/c-programming-for-dummies-isbn-9781119740247","provider":"K12savings","version":"1.0","type":"link"}