What would be the output 
main( ) 
{ 
int i = 10 ; float a = 3.14 ; char ch = ’z’ ; 
j = &i ; b = &a ; dh = &ch ; 
k = &j ; c = &b ; eh = &dh ; 
printf ( ” %d %d %d 
” , j , b , dh ) ; 
printf ( ” ” , *k ,*c , *eh ) ; 
%d %d %d 
i 
a ch 
j b dh 
4000 5000 6000 
4000 5000 6000 
500 1500 2500 
1000 2000 3000 
printf ( ” ” , sizeof ( i ), sizeof ( a ), sizeof ( ch ) ) ; 
%d %d %d 
10 
3.14 z 
1000 2000 3000 
1000 2000 3000 
k c eh 
1000 2000 3000 
2 4 1 
CCoonnttiinnuueedd...... 
int *j, **k ; float *b, **c ; char *dh, **eh ;
i 
a ch 
j b dh 
4000 5000 6000 
4000 5000 6000 
500 1500 2500 
2 2 2 
printf ( ”%d %d %d ”, sizeof ( j ), sizeof ( b ), sizeof ( dh ) ) ; 
printf ( ”%d %d %d”, sizeof ( k ), sizeof ( c ), sizeof ( eh ) ) ; 
printf ( ”%d %f %c” , **k, **c, **eh ) ; 
} 
10 
3.14 z 
1000 2000 3000 
1000 2000 3000 
k c eh 
2 2 2 
10 3.14 z 
......CCoonnttiinnuueedd
Truly Speaking 
main( ) 
{ 
int i = 25 ; 
float a = 3.14 ; 
j = &i ; 
int *j ; 
float *b ; 
b = &a ; 
} 
printf ( ”%d%f”, *j, *b ) ; 
i 
Binary of 25 401 
401 402 
a 
501 502 503 504 
j 
b 
Binary of 3.14 501
Accessing Individual Bytes 
a 
main( ) 
{ 
float a = 3.14 ; 
501 
502 
float *b ; int *c ; char *d ; 
b c d 
b = &a ; 
c = &a ; 
d = &a ; 
printf ( ” %f %d %d 
”, *b, *c, *d ) ; 
printf ( ”%d %d %d %d”, *d, *(d+1), *(d+2), *(d+3) ) ; 
printf ( ”%d %d”, *( c+1 ), *( c+2 ) ) ; 
} 
503 504 
501 
0’s & 
1’s 
0’s & 
1’s 
0’s & 
1’s 
0’s & 
1’s 
501 
501
main( ) 
{ 
int i = 25 ; int *j ; 
float a = 3.14 ; 
float *b ; 
char far *kb ; 
kb = 0x417 ; 
j = &i ; 
b = &a ; 
} 
Why far and near
i a j b kb 
25 3.14 200 300 
200 300 
0x417 
Code Segment 
Turbo C 
DOS/Windows 
BDA 0x417 
IVT 
0xB8000000 
Screen 
M A 
0xB8000000 
M 
A B C D E F 
384 KB 
High Memory 
640 KB 
Base or 
Conventional 
Memory 
 
Data 
Segment 
Free Memory 
(640 + 64 ) * 1024 
HEX 
64 * 6
main( ) 
{ 
Pointer Sizes 
int i = 25 ; int *j ; 
float a = 3.14 ; 
float *b ; 
char far *kb ; 
kb = 0x417 ; 
j = i ; 
b = a ; 
} 
2 2 
printf ( ”%d %d %d”, sizeof ( j ), sizeof ( b ), 
sizeof ( kb ) ) ; 
4
How Much Memory 
main( ) 
{ 
int far *m ; 
m = 0x413 ; 
printf ( ”%d” ,*m ) ; 
} 0x413 0x414 
640 
640 KB 
BDA 
Ideally 
632 
634 
636 
?
main( ) 
{ 
int a = 10, b = 20 ; 
printf ( ”%d%d”, a, b ) ; 
swapv ( a , b ) ; 
printf ( ”%d%d”, a, b ) ; 
} 
swapv ( int x, int y ) 
{ 
} 
int t ; 
t = x ; x = y ; y = t ; 
printf ( ”%d%d”, x, y ) ; 
10 20 
10 20 
a b 
x y t 
x y t 
x y t 
x y t 
10 20 g 
10 20 10 
20 20 10 
20 10 10 
20 10 
10 20
swapr (  a ,  b ) ; 
printf ( ”%d%d”, a, b ) ; 
swapr ( ) 
{ 
} 
int t ; 
t = *x ; 
*x = *y ; 
*y = t ; 
10 20 
20 10 
a b 
20 
20 10 
300 
x y t 
main( ) 
{ 
int a = 10, b = 20 ; 
printf ( ”%d%d”, a, b ) ; 
int *x , int *y 200 } 10 
200 300 10
main( ) 
{ 
int a = 10, b = 20, c = 30 
sumprod ( a, b, c, ) ; 
printf ( ”%d%d”, s, p ) ; 
} 
, s, p ; 
60 6000 
sumprod ( int x, int y, int z, ) 
{ 
} 
x + y + z ; 
x * y * z ; 
s, p 
int *ss, int*pp 
ss = 
pp = 
* 
* 
a b c s p 
6G0 60G00 
100 200 
10 20 30 
x y z ss pp 
10 20 30 100 200
Advanced Features of 
Functions 
• Returning Non-integer Value 
• Call By Value / Reference 
• Recursion
To Be A Successful Software 
Developer 
Creative Intelligence 
Analytical Ability 
Patience 
Ability To Think

Vcs12

  • 1.
    What would bethe output main( ) { int i = 10 ; float a = 3.14 ; char ch = ’z’ ; j = &i ; b = &a ; dh = &ch ; k = &j ; c = &b ; eh = &dh ; printf ( ” %d %d %d ” , j , b , dh ) ; printf ( ” ” , *k ,*c , *eh ) ; %d %d %d i a ch j b dh 4000 5000 6000 4000 5000 6000 500 1500 2500 1000 2000 3000 printf ( ” ” , sizeof ( i ), sizeof ( a ), sizeof ( ch ) ) ; %d %d %d 10 3.14 z 1000 2000 3000 1000 2000 3000 k c eh 1000 2000 3000 2 4 1 CCoonnttiinnuueedd...... int *j, **k ; float *b, **c ; char *dh, **eh ;
  • 2.
    i a ch j b dh 4000 5000 6000 4000 5000 6000 500 1500 2500 2 2 2 printf ( ”%d %d %d ”, sizeof ( j ), sizeof ( b ), sizeof ( dh ) ) ; printf ( ”%d %d %d”, sizeof ( k ), sizeof ( c ), sizeof ( eh ) ) ; printf ( ”%d %f %c” , **k, **c, **eh ) ; } 10 3.14 z 1000 2000 3000 1000 2000 3000 k c eh 2 2 2 10 3.14 z ......CCoonnttiinnuueedd
  • 3.
    Truly Speaking main() { int i = 25 ; float a = 3.14 ; j = &i ; int *j ; float *b ; b = &a ; } printf ( ”%d%f”, *j, *b ) ; i Binary of 25 401 401 402 a 501 502 503 504 j b Binary of 3.14 501
  • 4.
    Accessing Individual Bytes a main( ) { float a = 3.14 ; 501 502 float *b ; int *c ; char *d ; b c d b = &a ; c = &a ; d = &a ; printf ( ” %f %d %d ”, *b, *c, *d ) ; printf ( ”%d %d %d %d”, *d, *(d+1), *(d+2), *(d+3) ) ; printf ( ”%d %d”, *( c+1 ), *( c+2 ) ) ; } 503 504 501 0’s & 1’s 0’s & 1’s 0’s & 1’s 0’s & 1’s 501 501
  • 5.
    main( ) { int i = 25 ; int *j ; float a = 3.14 ; float *b ; char far *kb ; kb = 0x417 ; j = &i ; b = &a ; } Why far and near
  • 6.
    i a jb kb 25 3.14 200 300 200 300 0x417 Code Segment Turbo C DOS/Windows BDA 0x417 IVT 0xB8000000 Screen M A 0xB8000000 M A B C D E F 384 KB High Memory 640 KB Base or Conventional Memory Data Segment Free Memory (640 + 64 ) * 1024 HEX 64 * 6
  • 7.
    main( ) { Pointer Sizes int i = 25 ; int *j ; float a = 3.14 ; float *b ; char far *kb ; kb = 0x417 ; j = i ; b = a ; } 2 2 printf ( ”%d %d %d”, sizeof ( j ), sizeof ( b ), sizeof ( kb ) ) ; 4
  • 8.
    How Much Memory main( ) { int far *m ; m = 0x413 ; printf ( ”%d” ,*m ) ; } 0x413 0x414 640 640 KB BDA Ideally 632 634 636 ?
  • 9.
    main( ) { int a = 10, b = 20 ; printf ( ”%d%d”, a, b ) ; swapv ( a , b ) ; printf ( ”%d%d”, a, b ) ; } swapv ( int x, int y ) { } int t ; t = x ; x = y ; y = t ; printf ( ”%d%d”, x, y ) ; 10 20 10 20 a b x y t x y t x y t x y t 10 20 g 10 20 10 20 20 10 20 10 10 20 10 10 20
  • 10.
    swapr ( a , b ) ; printf ( ”%d%d”, a, b ) ; swapr ( ) { } int t ; t = *x ; *x = *y ; *y = t ; 10 20 20 10 a b 20 20 10 300 x y t main( ) { int a = 10, b = 20 ; printf ( ”%d%d”, a, b ) ; int *x , int *y 200 } 10 200 300 10
  • 11.
    main( ) { int a = 10, b = 20, c = 30 sumprod ( a, b, c, ) ; printf ( ”%d%d”, s, p ) ; } , s, p ; 60 6000 sumprod ( int x, int y, int z, ) { } x + y + z ; x * y * z ; s, p int *ss, int*pp ss = pp = * * a b c s p 6G0 60G00 100 200 10 20 30 x y z ss pp 10 20 30 100 200
  • 12.
    Advanced Features of Functions • Returning Non-integer Value • Call By Value / Reference • Recursion
  • 13.
    To Be ASuccessful Software Developer Creative Intelligence Analytical Ability Patience Ability To Think