SlideShare a Scribd company logo
Prepared by
Mohammed Sikander
Technical Lead
Cranes Software International Limited
int main( )
{
int x = 10;
printf(“x = %d “ , x); //Prints the value of x.
printf(“&x = %p “ , &x);
}
mohammed.sikander@cranessoftware.com 2
& operator gets the address of variable.
%p is the correct format specifier to print address.
1. int main( )
2. {
3. int x = 10;
4. printf(“x = %d n“ , x); //Prints the value of x.
5. printf(“&x = %p n“ , &x);
6. int *ptr; //Declaration of pointer
7. ptr = &x;
8. printf(“ptr = %p n” , ptr);
9. printf(“*ptr = %d n” , *ptr);
10. }
mohammed.sikander@cranessoftware.com 3
6. * is used to declare a pointer
9. * is used to get value at address (dereference)
1. int main( )
2. {
3. int x = 5, y = 8;
4. int *p1 , p2;
5. p1 = &x;
6. p2 = &y;
7. printf(“ *p1 = %d “ , *p1);
8. printf(“ *p2 = %d “ , *p2);
9. }
mohammed.sikander@cranessoftware.com 4
mohammed.sikander@cranessoftware.com 5
Pointer size is same irrespective of type.
Pointers are like shorcuts to files (in windows).
A size of shortcut to a 1MB file, 1GB file ,
200MB file is same
mohammed.sikander@cranessoftware.com 6
Pointer basics
mohammed.sikander@cranessoftware.com 8
int main( )
{
int x;
printf(“ x = %d “ , x); //garbage value.
int *ptr;
printf(“ ptr = %p “ , ptr); //garbage address.
printf(“ *ptr = %d “ ,*ptr);
}
mohammed.sikander@cranessoftware.com 9
int main( )
{
int *ptr1; // unitialized pointer
int *ptr2 = NULL; // NULL pointer
if(ptr2 != NULL) // Can be safeguarded
printf(“ *ptr2 = %d n”, *ptr2);
if(ptr1 != NULL) // Cannot be safeguarded
printf(“ *ptr1 = %d n”, *ptr1);
}
mohammed.sikander@cranessoftware.com 10
void update(int x)
{
x = x + 5;
printf(“Update x = %d “ , x);
}
int main( )
{
int x = 2;
update( x );
printf(“Main x = %d “ , x);
}
mohammed.sikander@cranessoftware.com 11
void update(int *px)
{
*px = *px + 5;
printf(“Update *px = %d “ , *px);
}
int main( )
{
int x = 2;
update( &x );
printf(“Main x = %d “ , x);
}
mohammed.sikander@cranessoftware.com 12
mohammed.sikander@cranessoftware.com 13
mohammed.sikander@cranessoftware.com 14
a = 3 , b = 7
a = a + b; //10
b = a – b; //3
a = a – b; //7
mohammed.sikander@cranessoftware.com 15
a = 7 , b = 10
a = a * b; //70
b = a / b; //7
a = a / b; //10
a = 5 , b = 10
a = a ^ b; //
b = a ^ b; //5
a = a ^ b; //10
int main( )
{
int arr[ ] = {12,23,34,54};
printf(“ %p “ , &arr[0]);
printf(“ %p “ , arr);
}
mohammed.sikander@cranessoftware.com 16
Array name gives the base address (address of first
element of array )
int main( )
{
int arr[ ] = {12,23,34,54};
int *p1 = &arr[0];
int *p2 = arr;
printf(“ %d “ , *p1);
printf(“ %d “ , *p2);
}
mohammed.sikander@cranessoftware.com 17
The following arithmetic operations with pointers are legal:
• add an integer to a pointer (+ and +=)
• subtract an integer from a pointer(- and -=).
• use a pointer as an operand to the ++ and -- operators.
• subtract one pointer from another pointer, if they point
to objects of the same type.
• compare two pointers
• Operations meaningless unless performed on an array
• All other arithmetic operations with pointers are illegal.
 Ptr = ptr + int
 When you add or subtract an integer to or from a
pointer, the compiler automatically scales the
integer to the pointer's type. In this way, the integer
always represents the number of objects to jump,
not the number of bytes.
 int x; // Assume address of x is 1000
 int *ptr = &x; // ptr = 1000
 ptr = ptr +1; // ptr-> 1004 and not 1001
int main( )
{
int arr[ ] = {0x21343782 , 0x54562319};
int *p1 = &arr[0];
printf(“ &arr[0] = %p n” , &arr[0]); //100
printf(“ &arr[1] = %p n” , &arr[1]); //104
printf(“ p1 = %p *p1 = %x” , p1 , *p1); //100
p1++;
printf(“ p1 = %p *p1 = %x” , p1 , *p1); //104
}
mohammed.sikander@cranessoftware.com 20
int main( )
{
short int arr[ ] = {0x2134 , 0x5456};
short int *p1 = &arr[0];
printf(“ &arr[0] = %p n” , &arr[0]); //100
printf(“ &arr[1] = %p n” , &arr[1]); //102
printf(“ p1 = %p *p1 = %x” , p1 , *p1); //100
p1++;
printf(“ p1 = %p *p1 = %x” , p1 , *p1); //102
}
mohammed.sikander@cranessoftware.com 21
int main( )
{
int arr[ ] = {0x21343782 , 0x54562319};
short int *p1 = &arr[0];
printf(“ *p1 = %x n” ,*p1);
p1++;
printf(“ *p1 = %x n” ,*p1);
}
mohammed.sikander@cranessoftware.com 22
int main( )
{
int arr[ 5 ] = {12,23,34,45,56};
int *ptr = arr;
for(int i = 0 ; i < 5 ; i++)
{
printf(“ %d “ , *ptr);
ptr++;
}
}
mohammed.sikander@cranessoftware.com 23
int main( )
{
int arr[ 5 ] = {12,23,34,45,56};
int *ptr = arr;
for(int i = 0 ; i < 5 ; i++)
{
printf(“ %d “ , ptr[ i ]);
}
}
mohammed.sikander@cranessoftware.com 24
int main( )
{
int arr[ 5 ] = {12,23,34,45,56};
for(int i = 0 ; i < 5 ; i++)
{
printf(“ %d “ , *(arr + i));
}
}
mohammed.sikander@cranessoftware.com 25
void printArray(int arr[])
{
printf(" %d " , sizeof(arr));
}
int main( )
{
int arr[5] = {12,23,34,54,67};
printf(" %d " , sizeof(arr));
printArray( arr );
}
mohammed.sikander@cranessoftware.com 26
mohammed.sikander@cranessoftware.com 27
void printArray(int arr[])
{
arr++; //No Error
}
int main( )
{
int arr[5] = {12,23,34,54,67};
// arr++; //Error
printArray( arr );
}
mohammed.sikander@cranessoftware.com 28
int main( )
{
const int x= 5;
x = 20; //ERROR
x++; //ERROR
}
mohammed.sikander@cranessoftware.com 29
int main( )
{
1. const int x= 5;
2. int *ptr = &x;
3. *ptr = 20;
4. printf(“ %d “ , x);
}
mohammed.sikander@cranessoftware.com 30
int main( )
{
1. const int x= 5;
2. const int *ptr = &x;
3. *ptr = 20;
4. printf(“ %d “ , x);
}
 Constant Pointer : Pointer is fixed to one
location.
 Pointer to const : Pointer has read-only
access.
mohammed.sikander@cranessoftware.com 31
 int * const cp;
 const int * pc;
 Constant pointer should be initialized.
int main( )
{
int x = 10 ;
const int y = 20;
const int * pc1 ;
pc1 = &x;
pc1 = &y;
}
mohammed.sikander@cranessoftware.com 32
int main( )
{
int x = 10 ;
const int y = 20;
int * const cp1;
int * const cp2 = &x;
int * const cp3 = &y;
const int * const cp4 = &y;
cp2 = &y;
}
 size_t strlen(const char *str);
mohammed.sikander@cranessoftware.com 33
size_t mystrlen(const char *str)
{
const char *end = str;
while( *end != ‘0’)
end++;
return end – str;
}
char * strcpy(char *dest, const char *src);
mohammed.sikander@cranessoftware.com 34
void mystrcpy(char *dest, const char *src)
{
while(1)
{
*dest = *src;
if(*dest == ‘0’)
return;
src++;
dest++;
}
}
char * strcpy(char *dest, const char *src);
mohammed.sikander@cranessoftware.com 35
void mystrcpy(char *dest, const char *src)
{
while((*dest++ = *src++))
{
}
}
int strcmp(const char *str1 , const char *str2);
mohammed.sikander@cranessoftware.com 36
int mystrcmp(const char *str1 , const char *str2)
{
while(1)
{
if(*str1 != *str2)
return *str1 - *str2;
if(*str1 == ‘0’)
return 0;
str1++;
str2++;
}
}
while(*str1 == *str2 && *str1 != ‘0’)
{
str1++;
str2++;
}
return *str1 - *str2;
mohammed.sikander@cranessoftware.com 37

More Related Content

PDF
Introduction to Python
PPT
Lecture 5
PPT
Lecture 11 - Functions
PPT
Prsentation on functions
PPTX
Presentation on function
PPTX
Function Pointer
PPT
Lecture 14 - Scope Rules
PPT
Lecture 13 - Storage Classes
Introduction to Python
Lecture 5
Lecture 11 - Functions
Prsentation on functions
Presentation on function
Function Pointer
Lecture 14 - Scope Rules
Lecture 13 - Storage Classes

What's hot (20)

PPTX
Input processing and output in Python
PPTX
Types of function call
PPTX
Function in C program
PPT
Function in C Language
PPT
Recursion in c
PPTX
Pointer to function 1
PPTX
Function in c
PPTX
Functions in c language
PPTX
C function
PPT
RECURSION IN C
PPTX
C function presentation
PDF
Operators in python
PPTX
Function in c program
PPTX
Functions in C
PPTX
Functions in C
PDF
Pointers and call by value, reference, address in C
PDF
C standard library functions
PPTX
Function Pointer in C
PDF
Python-02| Input, Output & Import
PPT
lets play with "c"..!!! :):)
Input processing and output in Python
Types of function call
Function in C program
Function in C Language
Recursion in c
Pointer to function 1
Function in c
Functions in c language
C function
RECURSION IN C
C function presentation
Operators in python
Function in c program
Functions in C
Functions in C
Pointers and call by value, reference, address in C
C standard library functions
Function Pointer in C
Python-02| Input, Output & Import
lets play with "c"..!!! :):)
Ad

Similar to Pointer basics (20)

PPT
Pointers C programming
PPT
l7-pointers.ppt
PPTX
C++ Pointer | Introduction to programming
PPTX
unit-7 Pointerdesfsdfsdgsdgaa notes.pptx
PPTX
Chapter5.pptx
PPT
c-arrays-pointers.ppt
PPT
c-arrays-pointer basics xxxx yyyy zzzzzzz
PPTX
Arrays to arrays and pointers with arrays.pptx
PPT
Pointers and arrays
PPTX
pointers_final.pptxxxxxxxxxxxxxxxxxxxxxx
PDF
C++ computer language chapter 4 pointers.pdf
PDF
Pointers are one of the core components of the C programming language.
PPTX
UNIT 4 POINTERS.pptx pointers pptx for basic c language
PPT
ch08.ppt
PPTX
Engineering Computers L32-L33-Pointers.pptx
PPTX
Ponters
PPTX
Algoritmos e Estruturas de Dados - Pointers
PPTX
DOCX
08-Pointers.docx An array is a linear data structure
PDF
Module 02 Pointers in C
Pointers C programming
l7-pointers.ppt
C++ Pointer | Introduction to programming
unit-7 Pointerdesfsdfsdgsdgaa notes.pptx
Chapter5.pptx
c-arrays-pointers.ppt
c-arrays-pointer basics xxxx yyyy zzzzzzz
Arrays to arrays and pointers with arrays.pptx
Pointers and arrays
pointers_final.pptxxxxxxxxxxxxxxxxxxxxxx
C++ computer language chapter 4 pointers.pdf
Pointers are one of the core components of the C programming language.
UNIT 4 POINTERS.pptx pointers pptx for basic c language
ch08.ppt
Engineering Computers L32-L33-Pointers.pptx
Ponters
Algoritmos e Estruturas de Dados - Pointers
08-Pointers.docx An array is a linear data structure
Module 02 Pointers in C
Ad

More from Mohammed Sikander (20)

PDF
STL Containers in C++ : Sequence Container : Vector
PPTX
Strings in C - covers string functions
PDF
Smart Pointers, Modern Memory Management Techniques
PDF
Multithreading_in_C++ - std::thread, race condition
PDF
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjj
PDF
Operator Overloading in C++
PDF
Python_Regular Expression
PPTX
Modern_CPP-Range-Based For Loop.pptx
PDF
Modern_cpp_auto.pdf
PPTX
Python Functions
PPTX
Python dictionary
PDF
Python exception handling
PDF
Python tuple
PDF
Python strings
PDF
Python set
PDF
Python list
PDF
Python Flow Control
PPTX
PPTX
File management
STL Containers in C++ : Sequence Container : Vector
Strings in C - covers string functions
Smart Pointers, Modern Memory Management Techniques
Multithreading_in_C++ - std::thread, race condition
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjj
Operator Overloading in C++
Python_Regular Expression
Modern_CPP-Range-Based For Loop.pptx
Modern_cpp_auto.pdf
Python Functions
Python dictionary
Python exception handling
Python tuple
Python strings
Python set
Python list
Python Flow Control
File management

Recently uploaded (20)

PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
VCE English Exam - Section C Student Revision Booklet
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
O7-L3 Supply Chain Operations - ICLT Program
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
Insiders guide to clinical Medicine.pdf
PPTX
Cell Structure & Organelles in detailed.
PDF
Computing-Curriculum for Schools in Ghana
PDF
TR - Agricultural Crops Production NC III.pdf
PDF
RMMM.pdf make it easy to upload and study
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
Basic Mud Logging Guide for educational purpose
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
VCE English Exam - Section C Student Revision Booklet
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
O7-L3 Supply Chain Operations - ICLT Program
PPH.pptx obstetrics and gynecology in nursing
102 student loan defaulters named and shamed – Is someone you know on the list?
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
STATICS OF THE RIGID BODIES Hibbelers.pdf
Insiders guide to clinical Medicine.pdf
Cell Structure & Organelles in detailed.
Computing-Curriculum for Schools in Ghana
TR - Agricultural Crops Production NC III.pdf
RMMM.pdf make it easy to upload and study
Renaissance Architecture: A Journey from Faith to Humanism
Microbial diseases, their pathogenesis and prophylaxis
Final Presentation General Medicine 03-08-2024.pptx
Basic Mud Logging Guide for educational purpose
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
O5-L3 Freight Transport Ops (International) V1.pdf
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...

Pointer basics

  • 1. Prepared by Mohammed Sikander Technical Lead Cranes Software International Limited
  • 2. int main( ) { int x = 10; printf(“x = %d “ , x); //Prints the value of x. printf(“&x = %p “ , &x); } mohammed.sikander@cranessoftware.com 2 & operator gets the address of variable. %p is the correct format specifier to print address.
  • 3. 1. int main( ) 2. { 3. int x = 10; 4. printf(“x = %d n“ , x); //Prints the value of x. 5. printf(“&x = %p n“ , &x); 6. int *ptr; //Declaration of pointer 7. ptr = &x; 8. printf(“ptr = %p n” , ptr); 9. printf(“*ptr = %d n” , *ptr); 10. } mohammed.sikander@cranessoftware.com 3 6. * is used to declare a pointer 9. * is used to get value at address (dereference)
  • 4. 1. int main( ) 2. { 3. int x = 5, y = 8; 4. int *p1 , p2; 5. p1 = &x; 6. p2 = &y; 7. printf(“ *p1 = %d “ , *p1); 8. printf(“ *p2 = %d “ , *p2); 9. } mohammed.sikander@cranessoftware.com 4
  • 6. Pointer size is same irrespective of type. Pointers are like shorcuts to files (in windows). A size of shortcut to a 1MB file, 1GB file , 200MB file is same mohammed.sikander@cranessoftware.com 6
  • 9. int main( ) { int x; printf(“ x = %d “ , x); //garbage value. int *ptr; printf(“ ptr = %p “ , ptr); //garbage address. printf(“ *ptr = %d “ ,*ptr); } mohammed.sikander@cranessoftware.com 9
  • 10. int main( ) { int *ptr1; // unitialized pointer int *ptr2 = NULL; // NULL pointer if(ptr2 != NULL) // Can be safeguarded printf(“ *ptr2 = %d n”, *ptr2); if(ptr1 != NULL) // Cannot be safeguarded printf(“ *ptr1 = %d n”, *ptr1); } mohammed.sikander@cranessoftware.com 10
  • 11. void update(int x) { x = x + 5; printf(“Update x = %d “ , x); } int main( ) { int x = 2; update( x ); printf(“Main x = %d “ , x); } mohammed.sikander@cranessoftware.com 11
  • 12. void update(int *px) { *px = *px + 5; printf(“Update *px = %d “ , *px); } int main( ) { int x = 2; update( &x ); printf(“Main x = %d “ , x); } mohammed.sikander@cranessoftware.com 12
  • 15. a = 3 , b = 7 a = a + b; //10 b = a – b; //3 a = a – b; //7 mohammed.sikander@cranessoftware.com 15 a = 7 , b = 10 a = a * b; //70 b = a / b; //7 a = a / b; //10 a = 5 , b = 10 a = a ^ b; // b = a ^ b; //5 a = a ^ b; //10
  • 16. int main( ) { int arr[ ] = {12,23,34,54}; printf(“ %p “ , &arr[0]); printf(“ %p “ , arr); } mohammed.sikander@cranessoftware.com 16 Array name gives the base address (address of first element of array )
  • 17. int main( ) { int arr[ ] = {12,23,34,54}; int *p1 = &arr[0]; int *p2 = arr; printf(“ %d “ , *p1); printf(“ %d “ , *p2); } mohammed.sikander@cranessoftware.com 17
  • 18. The following arithmetic operations with pointers are legal: • add an integer to a pointer (+ and +=) • subtract an integer from a pointer(- and -=). • use a pointer as an operand to the ++ and -- operators. • subtract one pointer from another pointer, if they point to objects of the same type. • compare two pointers • Operations meaningless unless performed on an array • All other arithmetic operations with pointers are illegal.
  • 19.  Ptr = ptr + int  When you add or subtract an integer to or from a pointer, the compiler automatically scales the integer to the pointer's type. In this way, the integer always represents the number of objects to jump, not the number of bytes.  int x; // Assume address of x is 1000  int *ptr = &x; // ptr = 1000  ptr = ptr +1; // ptr-> 1004 and not 1001
  • 20. int main( ) { int arr[ ] = {0x21343782 , 0x54562319}; int *p1 = &arr[0]; printf(“ &arr[0] = %p n” , &arr[0]); //100 printf(“ &arr[1] = %p n” , &arr[1]); //104 printf(“ p1 = %p *p1 = %x” , p1 , *p1); //100 p1++; printf(“ p1 = %p *p1 = %x” , p1 , *p1); //104 } mohammed.sikander@cranessoftware.com 20
  • 21. int main( ) { short int arr[ ] = {0x2134 , 0x5456}; short int *p1 = &arr[0]; printf(“ &arr[0] = %p n” , &arr[0]); //100 printf(“ &arr[1] = %p n” , &arr[1]); //102 printf(“ p1 = %p *p1 = %x” , p1 , *p1); //100 p1++; printf(“ p1 = %p *p1 = %x” , p1 , *p1); //102 } mohammed.sikander@cranessoftware.com 21
  • 22. int main( ) { int arr[ ] = {0x21343782 , 0x54562319}; short int *p1 = &arr[0]; printf(“ *p1 = %x n” ,*p1); p1++; printf(“ *p1 = %x n” ,*p1); } mohammed.sikander@cranessoftware.com 22
  • 23. int main( ) { int arr[ 5 ] = {12,23,34,45,56}; int *ptr = arr; for(int i = 0 ; i < 5 ; i++) { printf(“ %d “ , *ptr); ptr++; } } mohammed.sikander@cranessoftware.com 23
  • 24. int main( ) { int arr[ 5 ] = {12,23,34,45,56}; int *ptr = arr; for(int i = 0 ; i < 5 ; i++) { printf(“ %d “ , ptr[ i ]); } } mohammed.sikander@cranessoftware.com 24
  • 25. int main( ) { int arr[ 5 ] = {12,23,34,45,56}; for(int i = 0 ; i < 5 ; i++) { printf(“ %d “ , *(arr + i)); } } mohammed.sikander@cranessoftware.com 25
  • 26. void printArray(int arr[]) { printf(" %d " , sizeof(arr)); } int main( ) { int arr[5] = {12,23,34,54,67}; printf(" %d " , sizeof(arr)); printArray( arr ); } mohammed.sikander@cranessoftware.com 26
  • 27. mohammed.sikander@cranessoftware.com 27 void printArray(int arr[]) { arr++; //No Error } int main( ) { int arr[5] = {12,23,34,54,67}; // arr++; //Error printArray( arr ); }
  • 29. int main( ) { const int x= 5; x = 20; //ERROR x++; //ERROR } mohammed.sikander@cranessoftware.com 29 int main( ) { 1. const int x= 5; 2. int *ptr = &x; 3. *ptr = 20; 4. printf(“ %d “ , x); }
  • 30. mohammed.sikander@cranessoftware.com 30 int main( ) { 1. const int x= 5; 2. const int *ptr = &x; 3. *ptr = 20; 4. printf(“ %d “ , x); }
  • 31.  Constant Pointer : Pointer is fixed to one location.  Pointer to const : Pointer has read-only access. mohammed.sikander@cranessoftware.com 31  int * const cp;  const int * pc;  Constant pointer should be initialized.
  • 32. int main( ) { int x = 10 ; const int y = 20; const int * pc1 ; pc1 = &x; pc1 = &y; } mohammed.sikander@cranessoftware.com 32 int main( ) { int x = 10 ; const int y = 20; int * const cp1; int * const cp2 = &x; int * const cp3 = &y; const int * const cp4 = &y; cp2 = &y; }
  • 33.  size_t strlen(const char *str); mohammed.sikander@cranessoftware.com 33 size_t mystrlen(const char *str) { const char *end = str; while( *end != ‘0’) end++; return end – str; }
  • 34. char * strcpy(char *dest, const char *src); mohammed.sikander@cranessoftware.com 34 void mystrcpy(char *dest, const char *src) { while(1) { *dest = *src; if(*dest == ‘0’) return; src++; dest++; } }
  • 35. char * strcpy(char *dest, const char *src); mohammed.sikander@cranessoftware.com 35 void mystrcpy(char *dest, const char *src) { while((*dest++ = *src++)) { } }
  • 36. int strcmp(const char *str1 , const char *str2); mohammed.sikander@cranessoftware.com 36 int mystrcmp(const char *str1 , const char *str2) { while(1) { if(*str1 != *str2) return *str1 - *str2; if(*str1 == ‘0’) return 0; str1++; str2++; } } while(*str1 == *str2 && *str1 != ‘0’) { str1++; str2++; } return *str1 - *str2;

Editor's Notes

  • #6: #include <stdio.h> int main( ) { char c , *pc; short int si , *psi; int i , *pi; double d , *pd; printf(" c %d pc %d \n" , sizeof(c) , sizeof(pc)); printf(" si %d psi %d \n" , sizeof(si) , sizeof(psi)); printf(" i %d pi %d \n" , sizeof(i) , sizeof(pi)); printf(" d %d pd %d \n" , sizeof(d) , sizeof(pd)); return 0; }
  • #8: Use typecasting to remove warnings
  • #14: #include <stdio.h> void swap( int *pa , int *pb) { int temp = *pa; *pa = *pb; *pb = temp; printf(" *pa = %d *pb = %d \n" ,*pa , *pb); } int main( ) { int a = 5 , b = 10; swap( &a , &b ); printf("a = %d b = %d \n" , a , b); }
  • #15: #include <stdio.h> void swap( int *pa , int *pb) { int *temp = pa; pa = pb; pb = temp; printf(" *pa = %d *pb = %d \n" ,*pa , *pb); } int main( ) { int a = 5 , b = 10; swap( &a , &b ); printf("a = %d b = %d \n" , a , b); }
  • #16: b = (a + b) - (a = b) // Karthik - 110