Written by students who passed Immediately available after payment Read online or as PDF Wrong document? Swap it for free 4.6 TrustPilot
logo-home
Class notes

Class notes C programming

Rating
-
Sold
-
Pages
238
Uploaded on
24-03-2023
Written in
2022/2023

This notes will register in your mind.

Institution
Course

Content preview

1

, 2

Preface........................................................................................................................................ 6
Preface to the first edition .......................................................................................................... 8
Chapter 1 - A Tutorial Introduction ........................................................................................... 9
1.1 Getting Started.................................................................................................................. 9
1.2 Variables and Arithmetic Expressions ........................................................................... 11
1.3 The for statement............................................................................................................ 16
1.4 Symbolic Constants........................................................................................................ 17
1.5 Character Input and Output ............................................................................................ 18
1.5.1 File Copying............................................................................................................ 18
1.5.2 Character Counting ................................................................................................. 20
1.5.3 Line Counting.......................................................................................................... 21
1.5.4 Word Counting........................................................................................................ 22
1.6 Arrays ............................................................................................................................. 23
1.7 Functions ........................................................................................................................ 25
1.8 Arguments - Call by Value............................................................................................. 28
1.9 Character Arrays ............................................................................................................ 29
1.10 External Variables and Scope ...................................................................................... 31
Chapter 2 - Types, Operators and Expressions ........................................................................ 35
2.1 Variable Names .............................................................................................................. 35
2.2 Data Types and Sizes ..................................................................................................... 35
2.3 Constants ........................................................................................................................ 36
2.4 Declarations.................................................................................................................... 39
2.5 Arithmetic Operators...................................................................................................... 40
2.6 Relational and Logical Operators................................................................................... 40
2.7 Type Conversions........................................................................................................... 41
2.8 Increment and Decrement Operators.............................................................................. 44
2.9 Bitwise Operators........................................................................................................... 46
2.10 Assignment Operators and Expressions....................................................................... 47
2.11 Conditional Expressions............................................................................................... 49
2.12 Precedence and Order of Evaluation............................................................................ 49
Chapter 3 - Control Flow ......................................................................................................... 52
3.1 Statements and Blocks ................................................................................................... 52
3.2 If-Else ............................................................................................................................. 52
3.3 Else-If ............................................................................................................................. 53
3.4 Switch............................................................................................................................. 54
3.5 Loops - While and For ................................................................................................... 56
3.6 Loops - Do-While........................................................................................................... 58
3.7 Break and Continue........................................................................................................ 59
3.8 Goto and labels............................................................................................................... 60
Chapter 4 - Functions and Program Structure.......................................................................... 62
4.1 Basics of Functions ........................................................................................................ 62
4.2 Functions Returning Non-integers ................................................................................. 65
4.3 External Variables .......................................................................................................... 67
4.4 Scope Rules .................................................................................................................... 72
4.5 Header Files.................................................................................................................... 73
4.6 Static Variables .............................................................................................................. 75
4.7 Register Variables .......................................................................................................... 75
4.8 Block Structure............................................................................................................... 76
4.9 Initialization ................................................................................................................... 76
4.10 Recursion...................................................................................................................... 78
4.11 The C Preprocessor ...................................................................................................... 79

, 3
4.11.1 File Inclusion......................................................................................................... 79
4.11.2 Macro Substitution ................................................................................................ 80
4.11.3 Conditional Inclusion ............................................................................................ 82
Chapter 5 - Pointers and Arrays ............................................................................................... 83
5.1 Pointers and Addresses................................................................................................... 83
5.2 Pointers and Function Arguments .................................................................................. 84
5.3 Pointers and Arrays ........................................................................................................ 87
5.4 Address Arithmetic ........................................................................................................ 90
5.5 Character Pointers and Functions................................................................................... 93
5.6 Pointer Arrays; Pointers to Pointers ............................................................................... 96
5.7 Multi-dimensional Arrays .............................................................................................. 99
5.8 Initialization of Pointer Arrays..................................................................................... 101
5.9 Pointers vs. Multi-dimensional Arrays......................................................................... 101
5.10 Command-line Arguments ......................................................................................... 102
5.11 Pointers to Functions.................................................................................................. 106
5.12 Complicated Declarations .......................................................................................... 108
Chapter 6 - Structures............................................................................................................. 114
6.1 Basics of Structures...................................................................................................... 114
6.2 Structures and Functions .............................................................................................. 116
6.3 Arrays of Structures ..................................................................................................... 118
6.4 Pointers to Structures ................................................................................................... 122
6.5 Self-referential Structures ............................................................................................ 124
6.6 Table Lookup ............................................................................................................... 127
6.7 Typedef......................................................................................................................... 129
6.8 Unions .......................................................................................................................... 131
6.9 Bit-fields....................................................................................................................... 132
Chapter 7 - Input and Output.................................................................................................. 135
7.1 Standard Input and Output ........................................................................................... 135
7.2 Formatted Output - printf ............................................................................................. 137
7.3 Variable-length Argument Lists................................................................................... 138
7.4 Formatted Input - Scanf................................................................................................ 140
7.5 File Access ................................................................................................................... 142
7.6 Error Handling - Stderr and Exit .................................................................................. 145
7.7 Line Input and Output .................................................................................................. 146
7.8 Miscellaneous Functions .............................................................................................. 147
7.8.1 String Operations................................................................................................... 147
7.8.2 Character Class Testing and Conversion .............................................................. 148
7.8.3 Ungetc ................................................................................................................... 148
7.8.4 Command Execution ............................................................................................. 148
7.8.5 Storage Management............................................................................................. 148
7.8.6 Mathematical Functions ........................................................................................ 149
7.8.7 Random Number generation ................................................................................. 149
Chapter 8 - The UNIX System Interface................................................................................ 151
8.1 File Descriptors ............................................................................................................ 151
8.2 Low Level I/O - Read and Write.................................................................................. 152
8.3 Open, Creat, Close, Unlink .......................................................................................... 153
8.4 Random Access - Lseek ............................................................................................... 155
8.5 Example - An implementation of Fopen and Getc....................................................... 156
8.6 Example - Listing Directories ...................................................................................... 159
8.7 Example - A Storage Allocator .................................................................................... 163
Appendix A - Reference Manual ........................................................................................... 168
A.1 Introduction ................................................................................................................. 168

, 4
A.2 Lexical Conventions.................................................................................................... 168
A.2.1 Tokens .................................................................................................................. 168
A.2.2 Comments............................................................................................................. 168
A.2.3 Identifiers.............................................................................................................. 168
A.2.4 Keywords.............................................................................................................. 169
A.2.5 Constants .............................................................................................................. 169
A.2.6 String Literals ....................................................................................................... 171
A.3 Syntax Notation........................................................................................................... 171
A.4 Meaning of Identifiers ................................................................................................. 171
A.4.1 Storage Class ........................................................................................................ 171
A.4.2 Basic Types .......................................................................................................... 172
A.4.3 Derived types........................................................................................................ 173
A.4.4 Type Qualifiers..................................................................................................... 173
A.5 Objects and Lvalues .................................................................................................... 173
A.6 Conversions ................................................................................................................. 173
A.6.1 Integral Promotion................................................................................................ 174
A.6.2 Integral Conversions............................................................................................. 174
A.6.3 Integer and Floating.............................................................................................. 174
A.6.4 Floating Types...................................................................................................... 174
A.6.5 Arithmetic Conversions........................................................................................ 174
A.6.6 Pointers and Integers ............................................................................................ 175
A.6.7 Void ...................................................................................................................... 176
A.6.8 Pointers to Void.................................................................................................... 176
A.7 Expressions.................................................................................................................. 176
A.7.1 Pointer Conversion ............................................................................................... 177
A.7.2 Primary Expressions............................................................................................. 177
A.7.3 Postfix Expressions .............................................................................................. 177
A.7.4 Unary Operators ................................................................................................... 179
A.7.5 Casts ..................................................................................................................... 181
A.7.6 Multiplicative Operators....................................................................................... 181
A.7.7 Additive Operators ............................................................................................... 182
A.7.8 Shift Operators ..................................................................................................... 182
A.7.9 Relational Operators............................................................................................. 183
A.7.10 Equality Operators.............................................................................................. 183
A.7.11 Bitwise AND Operator....................................................................................... 183
A.7.12 Bitwise Exclusive OR Operator ......................................................................... 184
A.7.13 Bitwise Inclusive OR Operator .......................................................................... 184
A.7.14 Logical AND Operator....................................................................................... 184
A.7.15 Logical OR Operator .......................................................................................... 184
A.7.16 Conditional Operator.......................................................................................... 184
A.7.17 Assignment Expressions..................................................................................... 185
A.7.18 Comma Operator ................................................................................................ 185
A.7.19 Constant Expressions ......................................................................................... 186
A.8 Declarations................................................................................................................. 186
A.8.1 Storage Class Specifiers ....................................................................................... 187
A.8.2 Type Specifiers..................................................................................................... 188
A.8.3 Structure and Union Declarations ........................................................................ 188
A.8.4 Enumerations........................................................................................................ 191
A.8.5 Declarators............................................................................................................ 192
A.8.6 Meaning of Declarators ........................................................................................ 193
A.8.7 Initialization.......................................................................................................... 196
A.8.8 Type names........................................................................................................... 198

Written for

Course

Document information

Uploaded on
March 24, 2023
Number of pages
238
Written in
2022/2023
Type
Class notes
Professor(s)
Dennis m.ritchie
Contains
All classes

Subjects

$42.29
Get access to the full document:

Wrong document? Swap it for free Within 14 days of purchase and before downloading, you can choose a different document. You can simply spend the amount again.
Written by students who passed
Immediately available after payment
Read online or as PDF

Get to know the seller
Seller avatar
narayansathish98

Get to know the seller

Seller avatar
narayansathish98 Smvec
Follow You need to be logged in order to follow users or courses
Sold
-
Member since
3 year
Number of followers
0
Documents
2
Last sold
-

0.0

0 reviews

5
0
4
0
3
0
2
0
1
0

Recently viewed by you

Why students choose Stuvia

Created by fellow students, verified by reviews

Quality you can trust: written by students who passed their tests and reviewed by others who've used these notes.

Didn't get what you expected? Choose another document

No worries! You can instantly pick a different document that better fits what you're looking for.

Pay as you like, start learning right away

No subscription, no commitments. Pay the way you're used to via credit card and download your PDF document instantly.

Student with book image

“Bought, downloaded, and aced it. It really can be that simple.”

Alisha Student

Working on your references?

Create accurate citations in APA, MLA and Harvard with our free citation generator.

Working on your references?

Frequently asked questions