Cantitate/Preț
Produs

C Primer Plus

Autor Stephen Prata
en Limba Engleză Paperback – 25 noi 2013

C Primer Plus is a carefully tested, well-crafted, and complete tutorial on a subject core to programmers and developers. This computer science classic teaches principles of programming, including structured code and top-down design. The sixth edition of this book has been updated and expanded to cover the latest developments in C as well as to take a detailed look at the new C11 standard.

Citește tot Restrânge

Preț: 44483 lei

Preț vechi: 55604 lei
-20% Nou

Puncte Express: 667

Preț estimativ în valută:
8513 8869$ 7078£

Carte disponibilă

Livrare economică 20 ianuarie-03 februarie 25

Preluare comenzi: 021 569.72.76

Specificații

ISBN-13: 9780321928429
ISBN-10: 0321928423
Pagini: 1037
Ilustrații: illustrations
Dimensiuni: 182 x 228 x 53 mm
Greutate: 1.75 kg
Ediția:6th revised edition.
Editura: Addison-Wesley Professional

Notă biografică


Cuprins

Preface xxvii

1 Getting Ready 1

Whence C? 1

Why C? 2

Design Features 2

Efficiency 3

Portability 3

Power and Flexibility 3

Programmer Oriented 3

Shortcomings 4

Whither C? 4

What Computers Do 5

High-level Computer Languages and Compilers 6

Language Standards 7

The First ANSI/ISO C Standard 8

The C99 Standard 8

The C11 Standard 9

Using C: Seven Steps 9

Step 1: Define the Program Objectives 10

Step 2: Design the Program 10

Step 3: Write the Code 11

Step 4: Compile 11

Step 5: Run the Program 12

Step 6: Test and Debug the Program 12

Step 7: Maintain and Modify the Program 13

Commentary 13

Programming Mechanics 13

Object Code Files, Executable Files, and Libraries 14

Unix System 16

The GNU Compiler Collection and the LLVM Project 18

Linux Systems 18

Command-Line Compilers for the PC 19

Integrated Development Environments (Windows) 19

The Windows/Linux Option 21

C on the Macintosh 21

How This Book Is Organized 22

Conventions Used in This Book 22

Typeface 22

Program Output 23

Special Elements 24

Summary 24

Review Questions 25

Programming Exercise 25

2 Introducing C 27

A Simple Example of C 27

The Example Explained 28

Pass 1: Quick Synopsis 30

Pass 2: Program Details 31

The Structure of a Simple Program 40

Tips on Making Your Programs Readable 41

Taking Another Step in Using C 42

Documentation 43

Multiple Declarations 43

Multiplication 43

Printing Multiple Values 43

While Youre at ItMultiple Functions 44

Introducing Debugging 46

Syntax Errors 46

Semantic Errors 47

Program State 49

Keywords and Reserved Identifiers 49

Key Concepts 50

Summary 51

Review Questions 51

Programming Exercises 53

3 Data and C 55

A Sample Program 55

Whats New in This Program? 57

Data Variables and Constants 59

Data: Data-Type Keywords 59

Integer Versus Floating-Point Types 60

The Integer 61

The Floating-Point Number 61

Basic C Data Types 62

The int Type 62

Other Integer Types 66

Using Characters: Type char 71

The _Bool Type 77

Portable Types: stdint.h and inttypes.h 77

Types float, double, and long double 79

Complex and Imaginary Types 85

Beyond the Basic Types 85

Type Sizes 87

Using Data Types 88

Arguments and Pitfalls 89

One More Example: Escape Sequences 91

What Happens When the Program Runs 91

Flushing the Output 92

Key Concepts 93

Summary 93

Review Questions 94

Programming Exercises 97

4 Character Strings and Formatted Input/Output 99

Introductory Program 99

Character Strings: An Introduction 101

Type char Arrays and the Null Character 101

Using Strings 102

The strlen() Function 103

Constants and the C Preprocessor 106

The const Modifier 109

Manifest Constants on the Job 109

Exploring and Exploiting printf() and scanf() 112

The printf() Function 112

Using printf() 113

Conversion Specification Modifiers for printf() 115

What Does a Conversion Specification Convert? 122

Using scanf() 128

The * Modifier with printf() and scanf() 133

Usage Tips for printf() 135

Key Concepts 136

Summary 137

Review Questions 138

Programming Exercises 140

5 Operators, Expressions, and Statements 143

Introducing Loops 144

Fundamental Operators 146

Assignment Operator: = 146

Addition Operator: + 149

Subtraction Operator: 149

Sign Operators: and + 150

Multiplication Operator: * 151

Division Operator: / 153

Operator Precedence 154

Precedence and the Order of Evaluation 156

Some Additional Operators 157

The sizeof Operator and the size_t Type 158

Modulus Operator: % 159

Increment and Decrement Operators: ++ and -- 160

Decrementing: -- 164

Precedence 165

Dont Be Too Clever 166

Expressions and Statements 167

Expressions 167

Statements 168

Compound Statements (Blocks) 171

Type Conversions 174

The Cast Operator 176

Function with Arguments 177

A Sample Program 180

Key Concepts 182

Summary 182

Review Questions 183

Programming Exercises 187

6 C Control Statements: Looping 189

Revisiting the while Loop 190

Program Comments 191

C-Style Reading Loop 192

The while Statement 193

Terminating a while Loop 194

When a Loop Terminates 194

while: An Entry-Condition Loop 195

Syntax Points 195

Which Is Bigger: Using Relational Operators and Expressions 197

What Is Truth? 199

What Else Is True? 200

Troubles with Truth 201

The New _Bool Type 203

Precedence of Relational Operators 205

Indefinite Loops and Counting Loops 207

The for Loop 208

Using for for Flexibility 210

More Assignment Operators: +=, -=, *=, /=, %= 215

The Comma Operator 215

Zeno Meets the for Loop 218

An Exit-Condition Loop: do while 220

Which Loop? 223

Nested Loops 224

Program Discussion 225

A Nested Variation 225

Introducing Arrays 226

Using a for Loop with an Array 228

A Loop Example Using a Function Return Value 230

Program Discussion 232

Using Functions with Return Values 233

Key Concepts 234

Summary 235

Review Questions 236

Programming Exercises 241

7 C Control Statements: Branching and Jumps 245

The if Statement 246

Adding else to the if Statement 248

Another Example: Introducing getchar() and putchar() 250

The ctype.h Family of Character Functions 252

Multiple Choice else if 254

Pairing else with if 257

More Nested ifs 259

Lets Get Logical 263

Alternate Spellings: The iso646.h Header File 265

Precedence 265

Order of Evaluation 266

Ranges 267

A Word-Count Program 268

The Conditional Operator: ?: 271

Loop Aids: continue and break 274

The continue Statement 274

The break Statement 277

Multiple Choice: switch and break 280

Using the switch Statement 281

Reading Only the First Character of a Line 283

Multiple Labels 284

switch and if else 286

The goto Statement 287

Avoiding goto 287

Key Concepts 291

Summary 291

Review Questions 292

Programming Exercises 296

8 Character Input/Output and Input Validation 299

Single-Character I/O: getchar() and putchar() 300

Buffers 301

Terminating Keyboard Input 302

Files, Streams, and Keyboard Input 303

The End of File 304

Redirection and Files 307

Unix, Linux, and Windows Command Prompt Redirection 307

Creating a Friendlier User Interface 312

Working with Buffered Input 312

Mixing Numeric and Character Input 314

Input Validation 317

Analyzing the Program 322

The Input Stream and Numbers 323

Menu Browsing 324

Tasks 324

Toward a Smoother Execution 325

Mixing Character and Numeric Input 327

Key Concepts 330

Summary 331

Review Questions 331

Programming Exercises 332

9 Functions 335

Reviewing Functions 335

Creating and Using a Simple Function 337

Analyzing the Program 338

Function Arguments 340

Defining a Function with an Argument: Formal Parameters 342

Prototyping a Function with Arguments 343

Calling a Function with an Argument: Actual Arguments 343

The Black-Box Viewpoint 345

Returning a Value from a Function with return 345

Function Types 348

ANSI C Function Prototyping 349

The Problem 350

The ANSI C Solution 351

No Arguments and Unspecified Arguments 352

Hooray for Prototypes 353

Recursion 353

Recursion Revealed 354

Recursion Fundamentals 355

Tail Recursion 356

Recursion and Reversal 358

Recursion Pros and Cons 360

Compiling Programs with Two or More Source Code Files 361

Unix 362

Linux 362

DOS Command-Line Compilers 362

Windows and Apple IDE Compilers 362

Using Header Files 363

Finding Addresses: The & Operator 367

Altering Variables in the Calling Function 369

Pointers: A First Look 371

The Indirection Operator: * 371

Declaring Pointers 372

Using Pointers to Communicate Between Functions 373

Key Concepts 378

Summary 378

Review Questions 379

Programming Exercises 380

10 Arrays and Pointers 383

Arrays 383

Initialization 384

Designated Initializers (C99) 388

Assigning Array Values 390

Array Bounds 390

Specifying an Array Size 392

Multidimensional Arrays 393

Initializing a Two-Dimensional Array 397

More Dimensions 398

Pointers and Arrays 398

Functions, Arrays, and Pointers 401

Using Pointer Parameters 404

Comment: Pointers and Arrays 407

Pointer Operations 407

Protecting Array Contents 412

Using const with Formal Parameters 413

More About const 415

Pointers and Multidimensional Arrays 417

Pointers to Multidimensional Arrays 420

Pointer Compatibility 421

Functions and Multidimensional Arrays 423

Variable-Length Arrays (VLAs) 427

Compound Literals 431

Key Concepts 434

Summary 435

Review Questions 436

Programming Exercises 439

11 Character Strings and String Functions 441

Representing Strings and String I/O 441

Defining Strings Within a Program 442

Pointers and Strings 451

String Input 453

Creating Space 453

The Unfortunate gets() Function 453

The Alternatives to gets() 455

The scanf() Function 462

String Output 464

The puts() Function 464

The fputs() Function 465

The printf() Function 466

The Do-It-Yourself Option 466

String Functions 469

The strlen() Function 469

The strcat() Function 471

The strncat() Function 473

The strcmp() Function 475

The strcpy() and strncpy() Functions 482

The sprintf() Function 487

Other String Functions 489

A String Example: Sorting Strings 491

Sorting Pointers Instead of Strings 493

The Selection Sort Algorithm 494

The ctype.h Character Functions and Strings 495

Command-Line Arguments 497

Command-Line Arguments in Integrated Environments 500

Command-Line Arguments with the Macintosh 500

String-to-Number Conversions 500

Key Concepts 504

Summary 504

Review Questions 505

Programming Exercises 508

12 Storage Classes, Linkage, and Memory Management 511

Storage Classes 511

Scope 513

Linkage 515

Storage Duration 516

Automatic Variables 518

Register Variables 522

Static Variables with Block Scope 522

Static Variables with External Linkage 524

Static Variables with Internal Linkage 529

Multiple Files 530

Storage-Class Specifier Roundup 530

Storage Classes and Functions 533

Which Storage Class? 534

A Random-Number Function and a Static Variable 534

Roll Em 538

Allocated Memory: malloc() and free() 543

The Importance of free() 547

The calloc() Function 548

Dynamic Memory Allocation and Variable-Length Arrays 548

Storage Classes and Dynamic Memory Allocation 549

ANSI C Type Qualifiers 551

The const Type Qualifier 552

The volatile Type Qualifier 554

The restrict Type Qualifier 555

The _Atomic Type Qualifier (C11) 556

New Places for Old Keywords 557

Key Concepts 558

Summary 558

Review Questions 559

Programming Exercises 561

13 File Input/Output 565

Communicating with Files 565

What Is a File? 566

The Text Mode and the Binary Mode 566

Levels of I/O 568

Standard Files 568

Standard I/O 568

Checking for Command-Line Arguments 569

The fopen() Function 570

The getc() and putc() Functions 572

End-of-File 572

The fclose() Function 57