Lecture 03 - C Programming Basics
Lecture 03 - C Programming Basics
Hossein Zeinali
Slides by Dr. Bahador Bakhshi
CE Department, Amirkabir University of Technology
What We Will Learn
What is the C
Variables
Types
Values
Casting
Constants & Definition
2
3
The C Language
C is a general-purpose programming
language
C is developed by Dennis Ritchie at Bell
Laboratories
C is one of the widely used languages
Application development
System programs, most operating systems are
developed in C: Unix, Linux
Many other languages are based on it
4
Programming in C Language
C programming language
A set of notations for representing programs
C standard libraries
A set of developed programs (functions)
C programming environment
A set of tools to aid program development
5
The First Example
6
The First C Program
#include <stdio.h>
int main(void){
printf("Hello the CE juniors :-) \n");
return 0;
}
7
General Rules
C is case sensitive: main is not MaIn
A “;” is required after each statement
Each program should have a main function
int main(void){…
void main(void){…
main(){…
int main(int argc, char ** argv){…
Equal Statements
int main(void){ int main (
void) {
return 0; return
0;
9
General Rules: Spaces
10
Comments
/* Our first
C program */
#include <stdio.h>
int main(void){
//This program prints a simple message
printf("Hello the CE juniors :-) \n");
return 0;
}
11
The First C Program
You should
Develop the source code of program
Compile
Run
Debug
Values
Casting
Constants & Definition
13
Variables
“write a program to calculate the sum of two
numbers given by user”
Solving problems
Input data Algorithm Output date
What we need
Implementing the algorithm
Named Functions
We will discuss later
Storing the input/output data
Variables
14
Variables (cont’d)
Data is stored in the main memory
Variables
Are the name of locations in the main memory
We use names instead of physical addresses
15
Variables
Variables in the C
<Qualifier> <Type> <Identifier>;
<Qualifier>
Is optional
We will discuss later
<Type>
Specifies the coding
<Identifier>
Is the name
16
Types: Integers
Integer numbers
Different types, different sizes, different ranges
17
Types: Float & Double
Floating point number
float 32 bits
double 64 bits
long double 96 bits
Limited precision
float: 8 digits precision
1.0 == 1.00000001
double: 16 digits precision
1.0 == 1.0000000000000001
18
Overflow & Underflow
All types have limited number of bits
Limited range of number are supported
Limited precision
Overflow
Assign a very big number to a variable that is
larger than the limit of the variable
Underflow
Assign a very small number to a variable that is
smaller than the limit of the variable Example
19
Types: Char
Character
Type: char
20
Types: Booleans
#include <stdbool.h>
21
Variables: Identifier
The name of variables: identifier
Identifier is string (single word) of
Alphabet
Numbers
“_”
But
Cannot start with digits
Cannot be the key-words (reserved words)
Cannot be duplicated
Should not be library function names: printf
22
Variables: Identifier
Use readable identifiers:
Do not use memorystartaddress
Use memory_start_address
Do not use xyz, abc, z, x, t
Use counter, sum, average, result,
parameter, …
Do not be lazy
Use meaningful names
23
C reserved words (cannot use for identifiers)
24
C++ reserved words (cannot use for identifiers)
25
Variable Identifiers
Valid identifiers
student grade sum
all_students average_grade_1
Invalid identifiers
if 32_test wrong* $sds$
26
Variables: Declaration ()اعالن
Reserve memory for variable: declaration
<type> <identifier>;
char test_char;
int sample_int;
long my_long;
double sum, average, total;
int id, counter, value;
27
Variable Type Effect (in complied Lang.)
Important note: the type of variable is NOT
stored in the main memory
After compiling the program NO type is
associated to memory locations!!!
float a, b, c; c = a + b;
28
Variables: Initial Values
What is the initial value of a variable?
In C: we do not know.
In C: it is not 0.
29
What We Will Learn
What is the C
Variables
Types
Values
Casting
Constants & Definition
30
Constants in C
Values
Numeric
Integer numbers
Float numbers
Char
Strings
Symbolic constant
Constant variables
31
Values
Variables
Save/restore data (value) to/from memory
32
Values: Examples
int i, j;
long l;
float f;
double d;
i = 10;
j = 20;
f = 20.0;
l = 218;
d = 19.9;
33
Value Types
Where are the values stored?!
int x = 20;
x = 30 + 40;
In main memory
There is a logical section for these constant values
35
Values: Float & Double
Valid numbers:
0.2; .5; -.67; 20.0; 60e10; 7e-2
Invalid numbers:
0. 2; 20. 0; 20 .0; 7 e; 6e; e12
36
Values: Chars
Char values
Should be enclosed in single quotation
‘a’, ‘^’, ‘z’, ‘0’, ‘1’, ‘\n’, ‘\’’, ‘\0’
37
Effect of Value Types
The type of values have the same effect
of the type of variables
It determines the “operations” that work on
the values Integer + and =
Performed by ALU
E.g.
int z; z = 10 + 20;
float c; c = 1.1 + 2.2;
Float + and =
Performed by FPU
39
Values: Initialization
int i = 20;
int j = 0x20FE, k = 90;
int i, j = 40;
char c1 = 'a', c2 = '0';
bool b1 = true;
float f1 = 50e4;
double d = 50e-8;
40
Values: From memory to memory
int i, j = 20;
i = j; // i = 20
d = b = i = j = 0;
// j = 0, i = 0, b = 0.0, d = 0.0
41
Basic Input Output
To read something: scanf
Integer: scanf("%d", &int_variable);
Float: scanf("%f", &float_variable);
Double: scanf("%lf", &double_variable);
42
What We Will Learn
What is the C
Variables
Types
Values
Casting
Constants & Definition
43
Casting
What is the casting?
When the type of variable and value are not the
same
Example: Assigning double value to integer
variable
44
Implicit casting
Implicit ()ضمني
We don’t say it
But we do it
45
Explicit casting
Explicit ()صريح
We say it
And we do it
46
Casting effects
Casting from small types to large types
There is not any problem
No loss of data
int i;
short s;
float f;
double d;
s = 'A'; // s = 65
i = 'B'; // i = 66
f = 4566; // f = 4566.0
d = 5666; // d = 5666.0
47
Casting effects (cont’d)
Casting from large types to small types
Data loss is possible
Depends on the values
48
Casting effects (cont’d)
Casting to Boolean
If value is zero false
If values is not zero true
49
What We Will Learn
What is the C
Variables
Types
Values
Casting
Constants & Definition
50
Constant Variables!!!
Constants
Do not want to change the value
Example: pi = 3.14
const is a qualifier
const int STUDENTS = 38;
const long int MAX_GRADE = 20;
int i;
i = MAX_GRADE;
STUDENTS = 39; //ERROR
51
Definitions
Another tool to define constants
Definition is not variable
We define definition, don’t declare them
Pre-processor replaces them by their values
before compiling
#define STUDENTS 38
int main(void){
int i;
i = STUDENTS;
STUDENTS = 90; //ERROR! What compiler sees: 38 = 90
52
Definitions
#define NAME “Test”
#define MYLIB
53
Summary
Simple programs in C
Two basics
Variables
Types
Values
Types
Casting
The type mismatch
55