Skip to content

C programming is a general-purpose, procedural, imperative computer programming language developed in 1972 by Dennis M. Ritchie at the Bell Telephone Laboratories to develop the UNIX operating system. C is the most widely used computer language.

Notifications You must be signed in to change notification settings

CheatSheetsHub/C-programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

C-programming

C programming is a general-purpose, procedural, imperative computer programming language developed in 1972 by Dennis M. Ritchie at the Bell Telephone Laboratories to develop the UNIX operating system. C is the most widely used computer language.

Create and execute a program

In Linux systems: 1. Open up a terminal 2. Create the program: nano nameProgram.c 3. Write the program and save it 4. gcc -o nameExecutable nameProgram.c

Menu

main() Function

  • The main() function is the starting point of the program: int main (int argc, char *argv[])
  • The return type of the main() function is an integer (type int) and it is known as the return value of the program.
  • As a rule of thumb, value 0 means success while non-zero means an error conditions.

Include Files

  • The purpose of these files is to tell the compiler about the existence of external functions which the source code will make use of.

Preprocessor directives:

#include "mine.h" search current working directory first

#include <stdio.h> search command line directory then system

#define TRUE 1 macro substitution, usually use capitals

#define min(a,b) (a<b)?(a):(b) macro substitution with parameters

#define abs(a) (a<0)?(-(a)):(a) macro substitution

#define note /* comment */ this comment gets inserted every time note appears */

backslash \ at end of a line means continue

#undef TRUE undefines a previously defined macroname

#error stop compiling at this point

#if expression conditional compilation, start if structure

#elif expression else if expression != 0 compile following code

#else else compile following code

#endif end of conditional compiling

#ifdef macroname like #if, compiles if macroname defined

#ifndef like #if, compiles if macroname undefined

#line number [filename] set origin for LINE and FILE

#pragma gives the compiler commands

32 Reserved words

Term Description
optional local declaration
break used to exit loop and used to exit switch
case choice in a switch
char basic declaration of a type character
const prefix declaration meaning variable can not be changed
continue go to bottom of loop in for, while and do loops
default optional last case of a switch
do executable statement, do-while loop
double basic declaration double precision floating point
else executable statement, part of "if" structure
enum basic declaration of enumeration type
extern prefix declaration meaning variable is defined externally
float basic declaration of floating point
for executable statement, for loop
goto jump within function to a label
if executable statement
int basic declaration of integer
long prefix declaration applying to many types
register prefix declaration meaning keep variable in register
return executable statement with or without a value
short prefix declaration applying to many types
signed prefix declaration applying to some types
sizeof operator applying to variables and types, gives size in bytes
static prefix declaration to make local variable static
struct declaration of a structure, like a record
switch executable statement for cases
typedef creates a new type name for an existing type
union declaration of variables that are in the same memory locations
unsigned prefix declaration applying to some types
void declaration of a typeless variable
volatile prefix declaration meaning the variable can be changed at any time
while executable statement, while loop or do-while loop

Basic types

Type Description
char character type, usually one byte ( a string is array of char )
int integer type, usually 2 or 4 bytes ( default )
float floating point type, usually 4 bytes
double floating point type, usually 8 bytes
void no type, typeless
enum enumeration type ( user defines the type name )

Type modifiers, prefix for basic types

Modifiers Description
unsigned no sign bit in variable
long longer version of type (short or long alone means short int or
short shorter version of type long int because int is the default)
const variable can not be stored into

Storage Types

Prefix Description
auto local variable ( default )
static permanent when function exits, not auto
volatile can change from outside influence
extern variables are defined elsewhere, externally
register assign variable to register

Operators

( ) grouping parenthesis, function call
[ ] array indexing, also [ ][ ] etc.
-> selector, structure pointer
. select structure element
! relational not, complement, ! a yields true or false
~ bitwise not, ones complement, ~ a
++ increment, pre or post to a variable
-- decrement, pre or post to a variable
- unary minus, - a
+ unary plus, + a
* indirect, the value of a pointer, * p is value at pointer p address
& the memory address, & b is the memory address of variable b

sizeof size in bytes, sizeof a or sizeof (int)

(type) a cast, explicit type conversion, (float) i, (fun)(a,b), (int)x

* multiply, a * b
/ divide, a / b
% modulo, a % b
+ add, a + b
- subtract, a - b
<< shift left, left operand is shifted left by right operand bits
>> shift right, left operand is shifted right by right operand bits
< less than, result is true or false, a %lt; b
<= less than or equal, result is true or false, a <= b
> greater than, result is true or false, a > b
>= greater than or equal, result is true or false, a >= b
== equal, result is true or false, a == b
!= not equal, result is true or false, a != b
& bitwise and, a & b
^ bitwise exclusive or, a ^ b
&& relational and, result is true or false, a < b && c >= d
? exp1 ? exp2 : exp3 result is exp2 if exp1 != 0, else result is exp3
= store
+= add and store
-= subtract and store
*= multiply and store
/= divide and store
%= modulo and store
<<= shift left and store
>>= shift right and store
&= bitwise and and store
^= bitwise exclusive or and store
= bitwise or and store
, separator as in ( y=x,z=++x )

Operator precedence

More precedence

LR ( ) [ ] -> . x++ x--
RL ! ~ - + ++x --x * & sizeof (type)
LR * / %
LR + -
LR << >>
LR < <= > >=
LR == !=
LR &
LR ^
LR
LR &&
LR
RL ? :
RL = += -= *= /= %= >>= <<= &= ^=
LR ,

About

C programming is a general-purpose, procedural, imperative computer programming language developed in 1972 by Dennis M. Ritchie at the Bell Telephone Laboratories to develop the UNIX operating system. C is the most widely used computer language.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages