did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780133462067

C for Programmers with an Introduction to C11

by ;
  • ISBN13:

    9780133462067

  • ISBN10:

    0133462064

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2013-04-21
  • Publisher: Prentice Hall
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $49.99
  • Digital
    $51.74
    Add to Cart

    DURATION
    PRICE

Supplemental Materials

What is included with this book?

Summary

The professional programmer’s Deitel® guide to procedural programming in C through 130 working code examples

 

Written for programmers with a background in high-level language programming, this book applies the Deitel signature live-code approach to teaching the C language and the C Standard Library. The book presents the concepts in the context of fully tested programs, complete with syntax shading, code highlighting, code walkthroughs and program outputs. The book features approximately 5,000 lines of proven C code and hundreds of savvy tips that will help you build robust applications.

 

Start with an introduction to C, then rapidly move on to more advanced topics, including building custom data structures, the Standard Library, select features of the new C11 standard such as multithreading to help you write high-performance applications for today’s multicore systems, and secure C programming sections that show you how to write software that is more robust and less vulnerable. You’ll enjoy the Deitels’ classic treatment of procedural programming. When you’re finished, you’ll have everything you need to start building industrial-strength C applications.

 

Practical, example-rich coverage of:

  • C programming fundamentals
  • Compiling and debugging with GNU gcc and gdb, and Visual C++®
  • Key new C11 standard features: Type generic expressions, anonymous structures and unions, memory alignment, enhanced Unicode® support, _Static_assert, quick_exit and at_quick_exit, _Noreturn function specifier, C11 headers
  • C11 multithreading for enhanced performance on today’s multicore systems
  • Secure C Programming sections
  • Data structures, searching and sorting
  • Order of evaluation issues, preprocessor
  • Designated initializers, compound literals, bool type, complex numbers, variable-length arrays, restricted pointers, type generic math, inline functions, and more.

Visit www.deitel.com

  • For information on Deitel’s Dive Into® Series programming training courses delivered at organizations worldwide visit www.deitel.com/training or write to deitel@deitel.com
  • Download code examples
  • To receive updates for this book, subscribe to the free DEITEL® BUZZ ONLINE e-mail newsletter at www.deitel.com/newsletter/subscribe.html
  • Join the Deitel social networking communities on Facebook® at facebook.com/DeitelFan , Twitter® @deitel, LinkedIn® at bit.ly/DeitelLinkedIn and Google+™ at gplus.to/Deitel

Author Biography

Paul Deitel and Harvey Deitel are the founders of Deitel & Associates, Inc., the internationally recognized programming languages authoring and corporate-training organization. Millions of people worldwide have used Deitel books, e-books, LiveLessons videos, e-articles and online resource centers to master C, C++, Visual C++®, Java™, C#, Visual Basic®, Android™ app development, iOS® app development, Internet and web programming, HTML5, JavaScript®, CSS3, XML, Perl, Python® and more.

Table of Contents

Preface xv

 

Chapter 1: Introduction 1

1.1 Introduction 2

1.2 The C Programming Language 2

1.3 CStandard Library 4

1.4 C++ and Other C-Based Languages 4

1.5 Typical C Program Development Environment 5

1.6 Test-Driving a C Application in Windows, Linux and Mac OS X 8

1.7 Operating Systems 16

 

Chapter 2: Introduction to C Programming 19

2.1 Introduction 20

2.2 ASimple C Program: Printing a Line of Text 20

2.3 Another Simple C Program: Adding Two Integers 24

2.4 Arithmetic in C 27

2.5 Decision Making: Equality and Relational Operators 31

2.6 Secure C Programming 35

 

Chapter 3: Control Statements: Part I 37

3.1 Introduction 38

3.2 Control Structures 38

3.3 The if Selection Statement 40

3.4 The if…else Selection Statement 40

3.5 The while Repetition Statement 43

3.6 Class Average with Counter-Controlled Repetition 44

3.7 Class Average with Sentinel-Controlled Repetition 46

3.8 Nested Control Statements 49

3.9 Assignment Operators 51

3.10 Increment and Decrement Operators 52

3.11 Secure C Programming 55

 

Chapter 4: Control Statements: Part II 57

4.1 Introduction 58

4.2 Repetition Essentials 58

4.3 Counter-Controlled Repetition 59

4.4 for Repetition Statement 60

4.5 for Statement: Notes and Observations 63

4.6 Examples Using the for Statement 64

4.7 switch Multiple-Selection Statement 67

4.8 do…while Repetition Statement 73

4.9 break and continue Statements 75

4.10 Logical Operators 77

4.11 Confusing Equality (==) and Assignment (=) Operators 80

4.12 Secure C Programming 81

 

Chapter 5: Functions 83

5.1 Introduction 84

5.2 Program Modules in C 84

5.3 Math Library Functions 85

5.4 Functions 86

5.5 Function Definitions 87

5.6 Function Prototypes: A Deeper Look 91

5.7 Function Call Stack and Stack Frames 94

5.8 Headers 97

5.9 Passing Arguments By Value and By Reference 98

5.10 Random Number Generation 99

5.11 Example: A Game of Chance 104

5.12 Storage Classes 107

5.13 Scope Rules 109

5.14 Recursion 112

5.15 Example Using Recursion: Fibonacci Series 116

5.16 Recursion vs. Iteration 119

5.17 Secure C Programming 121

 

Chapter 6: Arrays 122

6.1 Introduction 123

6.2 Arrays 123

6.3 Defining Arrays 124

6.4 Array Examples 125

6.5 Passing Arrays to Functions 138

6.6 Sorting Arrays 142

6.7 Case Study: Computing Mean, Median and Mode Using Arrays 144

6.8 Searching Arrays 149

6.9 Multidimensional Arrays 155

6.10 Variable-Length Arrays 162

6.11 Secure C Programming 165

 

Chapter 7: Pointers 167

7.1 Introduction 168

7.2 Pointer Variable Definitions and Initialization 168

7.3 Pointer Operators 169

7.4 Passing Arguments to Functions by Reference 172

7.5 Using the const Qualifier with Pointers 176

7.6 Bubble Sort Using Pass-by-Reference 182

7.7 sizeof Operator 185

7.8 Pointer Expressions and Pointer Arithmetic 188

7.9 Relationship between Pointers and Arrays 190

7.10 Arrays of Pointers 194

7.11 Case Study: Card Shuffling and Dealing Simulation 195

7.12 Pointers to Functions 199

7.13 Secure C Programming 204

 

Chapter 8: Characters and Strings 205

8.1 Introduction 206

8.2 Fundamentals of Strings and Characters 206

8.3 Character-Handling Library 208

8.4 String-Conversion Functions 213

8.5 Standard Input/Output Library Functions 217

8.6 String-Manipulation Functions of the String-Handling Library 221

8.7 Comparison Functions of the String-Handling Library 224

8.8 Search Functions of the String-Handling Library 225

8.9 Memory Functions of the String-Handling Library 231

8.10 Other Functions of the String-Handling Library 236

8.11 Secure C Programming 237

 

Chapter 9: Formatted Input/Output 238

9.1 Introduction 239

9.2 Streams 239

9.3 Formatting Output with printf 239

9.4 Printing Integers 240

9.5 Printing Floating-Point Numbers 241

9.6 Printing Strings and Characters 243

9.7 Other Conversion Specifiers 244

9.8 Printing with Field Widths and Precision 245

9.9 Using Flags in the printf Format Control String 247

9.10 Printing Literals and Escape Sequences 250

9.11 Reading Formatted Input with scanf 251

9.12 Secure C Programming 257

 

Chapter 10: Structures, Unions, Bit Manipulation and Enumerations 258

10.1 Introduction 259

10.2 Structure Definitions 259

10.3 Initializing Structures 262

10.4 Accessing Structure Members 262

10.5 Using Structures with Functions 264

10.6 typedef 264

10.7 Example: High-Performance Card Shuffling and Dealing Simulation 265

10.8 Unions 268

10.9 Bitwise Operators 270

10.10 Bit Fields 279

10.11 Enumeration Constants 282

10.12 Secure C Programming 284

Chapter 11: File Processing 285

11.1 Introduction 286

11.2 Files and Streams 286

11.3 Creating a Sequential-Access File 287

11.4 Reading Data from a Sequential-Access File 292

11.5 Random-Access Files 296

11.6 Creating a Random-Access File 297

11.7 Writing Data Randomly to a Random-Access File 299

11.8 Reading Data from a Random-Access File 302

11.9 Case Study: Transaction-Processing Program 303

11.10 Secure C Programming 309

 

Chapter 12: Data Structures 311

12.1 Introduction 312

12.2 Self-Referential Structures 312

12.3 Dynamic Memory Allocation 313

12.4 Linked Lists 314

12.5 Stacks 323

12.6 Queues 329

12.7 Trees 335

12.8 Secure C Programming 340

 

Chapter 13: Preprocessor 342

13.1 Introduction 343

13.2 #include Preprocessor Directive 343

13.3 #define Preprocessor Directive: Symbolic Constants 344

13.4 #define Preprocessor Directive: Macros 344

13.5 Conditional Compilation 346

13.6 #error and #pragma Preprocessor Directives 347

13.7 # and ## Operators 348

13.8 Line Numbers 348

13.9 Predefined Symbolic Constants 348

13.10 Assertions 349

13.11 Secure C Programming 349

 

Chapter 14: Other Topics 351

14.1 Introduction 352

14.2 Redirecting I/O 352

14.3 Variable-Length Argument Lists 353

14.4 Using Command-Line Arguments 355

14.5 Notes on Compiling Multiple-Source-File Programs 356

14.6 Program Termination with exit and atexit 358

14.7 Suffixes for Integer and Floating-Point Literals 359

14.8 Signal Handling 360

14.9 Dynamic Memory Allocation: Functions calloc and realloc 362

14.10 Unconditional Branching with goto 363

 

Appendix A: Operator Precedence Chart 365

 

Appendix B: ASCII Character Set 367

 

Appendix C: Number Systems 368

C.1 Introduction 369

C.2 Abbreviating Binary Numbers as Octal and Hexadecimal Numbers 372

C.3 Converting Octal and Hexadecimal Numbers to Binary Numbers 373

C.4 Converting from Binary, Octal or Hexadecimal to Decimal 373

C.5 Converting from Decimal to Binary, Octal or Hexadecimal 374

C.6 Negative Binary Numbers: Two’s Complement Notation 376

 

Appendix D: Sorting: A Deeper Look 378

D.1 Introduction 379

D.2 Big O Notation 379

D.3 Selection Sort 380

D.4 Insertion Sort 384

D.5 Merge Sort 387

 

Appendix E: Additional Features of the C Standard 394

E.1 Introduction 395

E.2 Support for C99 396

E.3 C99 Headers 396

E.4 Mixing Declarations and Executable Code 397

E.5 Declaring a Variable in a for Statement Header 397

E.6 Designated Initializers and Compound Literals 398

E.7 Type bool 401

E.8 Implicit int in Function Declarations 402

E.9 Complex Numbers 403

E.10 Variable-Length Arrays 404

E.11 Additions to the Preprocessor 407

E.12 Other C99 Features 408

E.13 New Features in the C11 Standard 411

E.14 Web Resources 422

 

Appendix F: Using the Visual Studio Debugger 425

F.1 Introduction 426

F.2 Breakpoints and the Continue Command 426

F.3 Locals and Watch Windows 430

F.4 Controlling Execution Using the Step Into, Step Over, Step Out and Continue Commands 432

F.5 Autos Window 434

 

Appendix G: Using the GNU Debugger 436

G.1 Introduction 437

G.2 Breakpoints and the run, stop, continue and print Commands 437

G.3 print and set Commands 442

G.4 Controlling Execution Using the step, finish and next Commands 444

G.5 watch Command 446

 

Index 449

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program