SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Functions
08/23/151
08/23/152
Advantages :
 Program writing becomes easy
 Program becomes easy to understand
 Modification in large program becomes easy
 Modularity comes in program when we use function
08/23/153
Calling to a function.
message();
main( )
{
message( ) ;
printf ( "nHello!" ) ;
}
message( )
{
printf ( "nJUET..." ) ;
}
And here’s the output...
JUET
Hello! 08/23/154
Calling to a function(Cont…)
When main function calls message() the control passes to the
function message( ). The activity of main( ) is temporarily
suspended; it falls asleep while the message( ) function wakes up and
goes to work. When the message( ) function runs out of statements
to execute, the control returns to main( ), which comes to life again
and begins executing its code at the exact point where it left off.
Thus, main( ) becomes the ‘calling’ function, whereas message( )
becomes the ‘called’ function.
08/23/155
Cont…
main( )
{
printf ( "nI am in main" ) ;
italy( ) ;
brazil( ) ;
argentina( ) ;
}
italy( ){
printf ( "nI am in italy" ) ;
}
brazil( ){
printf ( "nI am in brazil" ) ;
}
argentina( ){
printf ( "nI am in argentina" ) ;
}
08/23/156
I am in main
I am in italy
I am in brazil
I am in argentina
Function Declaration
Declaration Syntax:
Return_Type Function_Name(argument_list);
 Return_Type can be any of data type like char, int, float, double,
array, pointer etc.
 argument_list can also be any of data type like char, int, float,
double, array, pointer etc.
 Declaration must be before the call of function in main
function
Example: int add(int a, int b);
08/23/157
Function Definition
08/23/158
Function Call
Call Syntax:
Function_Name(argument_list);
08/23/159
Sample Example
#include<stdio.h>
int sum (int,int); //function declaration
void main(){
int p;
p=sum(3,4); //function call
printf(“%d”,p);
}
int sum( int a,int b){
int s; //function body
s=a+b;
return s; //function returning a value
} 08/23/1510
Passing arguments to functions
In programming, argument(parameter) refers to data that is
passed to function(function definition) while calling function.
In following example two variable, num1 and num2 are passed to
function during function call and these arguments are accepted by
arguments a and b in function definition. 
08/23/1511
Cont…
 Formal Parameter :Parameter written in Function Definition is Called “Formal
Parameter”.
 In last example a and b are formal parameters.
 There are two methods of declaring the formal arguments.
1. Kernighan and Ritchie (or just K & R) method.
calsum ( x, y, z )
int x, y, z ;
2. ANSI method
calsum ( int x, int y, int z )
 This method is called ANSI method and is more commonlyused these days.
 Actual Parameter :Parameter written in Function Call is Called “Actual
Parameter”.
 In last example num1 and num2 were actual parameters. 08/23/1512
Example: parameter passing
/* Sending and receiving values between functions */
main( ){
int a, b, c, sum ;
printf ( "nEnter any three numbers " ) ;
scanf ( "%d %d %d", &a, &b, &c ) ;
sum = calsum ( a, b, c ) ;
printf ( "nSum = %d", sum ) ;
}
calsum ( x, y, z )
int x, y, z ;
{
int d ;
d = x + y + z ;
return ( d ) ;
}
And here is the output...
Enter any three numbers 10 20 30
Sum = 60 08/23/1513
Return statement
In the message() function of previous example the moment closing
brace ( } ) of the called function was encountered the control returned
to the calling function. No separate return statement was necessary to
send back the control.
This approach is fine if the called function is not going to return any
meaningful value to the calling function.
In the above program, however, we want to return the sum of x, y
and z. Therefore, it is necessary to use the return statement.
 The return statement serves two purposes:
(1) On executing the return statement it immediately transfers the control back to the
calling program.
(2) It returns the value present in the parentheses after return, to the calling function.
In the above program the value of sum of three numbers is being returned.
08/23/1514
Return statement(Cont…)
 There is no restriction on the number of return statements that may be present in a
function. Also, the return statement need not always be present at the end of the
called function.
 The following program illustrates these facts.
fun( ){
char ch ;
printf ( "nEnter any alphabet " ) ;
scanf ( "%c", &ch ) ;
if ( ch >= 65 && ch <= 90 )
return ( ch ) ;
else
return ( ch + 32 ) ;
}
 In this function different return statements will be executed depending on whether
ch is capital or not.
08/23/1515
Return statement(Cont…)
 If a meaningful value is returned then it should be accepted in the calling program by
equating the called function to some variable. For example,
 sum = calsum ( a, b, c ) ;
 All the following are valid return statements.
 return ( a ) ;
 return ( 23 ) ;
 return ( 12.34 ) ;
 return ;
 A function can return only one value at a time. Thus, the following statements are
invalid.
return ( a, b ) ;//this will return value of b
return ( x, 12 ) ;
 There is a way to get around this limitation, which would be discussed later when we
learn pointers.
08/23/1516
Calling Convention
Calling convention indicates the order in which arguments are
passed to a function when a function call is encountered. There
are two possibilities here:
(a) Arguments might be passed from left to right.
(b) Arguments might be passed from right to left.
C language follows the second order.
Consider the following function call:
fun (a, b, c, d ) ;
In this call it doesn’t matter whether the arguments are passed
from left to right or from right to left.
08/23/1517
Calling Convention(Cont…)
08/23/1518
•However, in some function call the order of passing arguments
becomes an important consideration.
•For example:
Ways to Pass Parameters
Call By Value:In this approach we pass copy of actual variables
in function as a parameter.
Hence any modification on parameters inside the function will not
reflect in the actual variable.
08/23/1519
Ways to Pass
Parameters(Cont..)
Call By Reference:In this approach we pass memory address of
actual variables in function as a parameter.
Hence any modification on parameters inside the function will
reflect in the actual variable.
08/23/1520
Swap two variables without using a
third variable
#include<stdio.h>
void swap(int *,int *);
void main(){
int a=5,b=10;
swap(&a,&b);
printf("%d %d",a,b);
}
void swap(int *a,int *b){
*a=*a+*b;
*b=*a-*b;
*a=*a-*b;
}
Types of Function
1st :Take something and Return something (Function
with return value and parameters)
Example: printf, scanf , strlen, strcmp etc.
2nd : Take something and Return nothing (Function
with no return value but parameters)
Example: delay,
3rd : Take nothing and return something (Function with
return value but no parameter)
Example: getch,
4th : Take nothing and return nothing (Function with
no return value and no parameter)
Example: clrscr,
08/23/1522
Take something and Return
something
08/23/1523
Take something and Return
nothing
08/23/1524
Take nothing and return
something
08/23/1525
Take nothing and return
nothing
08/23/1526
Nesting of function call
 If we are calling any function inside another function call is known as nesting
function call.
 Sometime it converts a difficult program in easy one.
 For example 1:
int max(int x,int y){
return x>y?x:y;
}
int fact(int);
void main(){
int a,b,c;
scanf(“%d%d”,&a,&b);
c=fact(max(a,b));
print(“factorial of %d is %d”,max(a,b),c);
}
08/23/1527
int fact(int a)
{
int fact=1;
while(a>0)
{
fact=fact*a;
a--;
}
return fact; 
}
O/P:6
7
factorial of 7 is 5040
Example 2 Nested calling
08/23/1528
Problem
Write a function which receives a float and an int from
main( ), finds the product of these two and returns the
product which is printed through main( ).
08/23/1529

Weitere ähnliche Inhalte

Was ist angesagt? (20)

C function
C functionC function
C function
 
Function in C program
Function in C programFunction in C program
Function in C program
 
Function in c
Function in cFunction in c
Function in c
 
C programming function
C  programming functionC  programming function
C programming function
 
Programming Fundamentals Decisions
Programming Fundamentals  Decisions Programming Fundamentals  Decisions
Programming Fundamentals Decisions
 
Functionincprogram
FunctionincprogramFunctionincprogram
Functionincprogram
 
Function
FunctionFunction
Function
 
Functions in C
Functions in CFunctions in C
Functions in C
 
Functions in c
Functions in cFunctions in c
Functions in c
 
M11 operator overloading and type conversion
M11 operator overloading and type conversionM11 operator overloading and type conversion
M11 operator overloading and type conversion
 
Lecture#7 Call by value and reference in c++
Lecture#7 Call by value and reference in c++Lecture#7 Call by value and reference in c++
Lecture#7 Call by value and reference in c++
 
Functions in C++
Functions in C++Functions in C++
Functions in C++
 
Function in c program
Function in c programFunction in c program
Function in c program
 
Programming Fundamentals Functions in C and types
Programming Fundamentals  Functions in C  and typesProgramming Fundamentals  Functions in C  and types
Programming Fundamentals Functions in C and types
 
Function in c program
Function in c programFunction in c program
Function in c program
 
C++ programming function
C++ programming functionC++ programming function
C++ programming function
 
Functions
FunctionsFunctions
Functions
 
Function in c
Function in cFunction in c
Function in c
 
functions in C and types
functions in C and typesfunctions in C and types
functions in C and types
 
Chapter 5
Chapter 5Chapter 5
Chapter 5
 

Ähnlich wie Functions Explained: Pass Parameters, Return Values

UNIT3.pptx
UNIT3.pptxUNIT3.pptx
UNIT3.pptxNagasaiT
 
Dti2143 chapter 5
Dti2143 chapter 5Dti2143 chapter 5
Dti2143 chapter 5alish sha
 
Classes function overloading
Classes function overloadingClasses function overloading
Classes function overloadingankush_kumar
 
unit3 part2 pcds function notes.pdf
unit3 part2 pcds function notes.pdfunit3 part2 pcds function notes.pdf
unit3 part2 pcds function notes.pdfJAVVAJI VENKATA RAO
 
CH.4FUNCTIONS IN C_FYBSC(CS).pptx
CH.4FUNCTIONS IN C_FYBSC(CS).pptxCH.4FUNCTIONS IN C_FYBSC(CS).pptx
CH.4FUNCTIONS IN C_FYBSC(CS).pptxSangeetaBorde3
 
Functions and pointers_unit_4
Functions and pointers_unit_4Functions and pointers_unit_4
Functions and pointers_unit_4Saranya saran
 
function in in thi pdf you will learn what is fu...
function in  in thi pdf you will learn   what                           is fu...function in  in thi pdf you will learn   what                           is fu...
function in in thi pdf you will learn what is fu...kushwahashivam413
 
Amit user defined functions xi (2)
Amit  user defined functions xi (2)Amit  user defined functions xi (2)
Amit user defined functions xi (2)Arpit Meena
 
Chapter_1.__Functions_in_C++[1].pdf
Chapter_1.__Functions_in_C++[1].pdfChapter_1.__Functions_in_C++[1].pdf
Chapter_1.__Functions_in_C++[1].pdfTeshaleSiyum
 
Chapter 1. Functions in C++.pdf
Chapter 1.  Functions in C++.pdfChapter 1.  Functions in C++.pdf
Chapter 1. Functions in C++.pdfTeshaleSiyum
 

Ähnlich wie Functions Explained: Pass Parameters, Return Values (20)

UNIT3.pptx
UNIT3.pptxUNIT3.pptx
UNIT3.pptx
 
unit_2 (1).pptx
unit_2 (1).pptxunit_2 (1).pptx
unit_2 (1).pptx
 
Unit-III.pptx
Unit-III.pptxUnit-III.pptx
Unit-III.pptx
 
Lecture 4
Lecture 4Lecture 4
Lecture 4
 
function_v1.ppt
function_v1.pptfunction_v1.ppt
function_v1.ppt
 
function_v1.ppt
function_v1.pptfunction_v1.ppt
function_v1.ppt
 
Dti2143 chapter 5
Dti2143 chapter 5Dti2143 chapter 5
Dti2143 chapter 5
 
Functions in C++.pdf
Functions in C++.pdfFunctions in C++.pdf
Functions in C++.pdf
 
Classes function overloading
Classes function overloadingClasses function overloading
Classes function overloading
 
unit3 part2 pcds function notes.pdf
unit3 part2 pcds function notes.pdfunit3 part2 pcds function notes.pdf
unit3 part2 pcds function notes.pdf
 
unit_2.pptx
unit_2.pptxunit_2.pptx
unit_2.pptx
 
CH.4FUNCTIONS IN C_FYBSC(CS).pptx
CH.4FUNCTIONS IN C_FYBSC(CS).pptxCH.4FUNCTIONS IN C_FYBSC(CS).pptx
CH.4FUNCTIONS IN C_FYBSC(CS).pptx
 
Functions and pointers_unit_4
Functions and pointers_unit_4Functions and pointers_unit_4
Functions and pointers_unit_4
 
cp Module4(1)
cp Module4(1)cp Module4(1)
cp Module4(1)
 
Functions
FunctionsFunctions
Functions
 
Unit iv functions
Unit  iv functionsUnit  iv functions
Unit iv functions
 
function in in thi pdf you will learn what is fu...
function in  in thi pdf you will learn   what                           is fu...function in  in thi pdf you will learn   what                           is fu...
function in in thi pdf you will learn what is fu...
 
Amit user defined functions xi (2)
Amit  user defined functions xi (2)Amit  user defined functions xi (2)
Amit user defined functions xi (2)
 
Chapter_1.__Functions_in_C++[1].pdf
Chapter_1.__Functions_in_C++[1].pdfChapter_1.__Functions_in_C++[1].pdf
Chapter_1.__Functions_in_C++[1].pdf
 
Chapter 1. Functions in C++.pdf
Chapter 1.  Functions in C++.pdfChapter 1.  Functions in C++.pdf
Chapter 1. Functions in C++.pdf
 

Mehr von Rohit Shrivastava (13)

1 introduction-to-computer
1 introduction-to-computer1 introduction-to-computer
1 introduction-to-computer
 
17 structure-and-union
17 structure-and-union17 structure-and-union
17 structure-and-union
 
16 dynamic-memory-allocation
16 dynamic-memory-allocation16 dynamic-memory-allocation
16 dynamic-memory-allocation
 
14 strings
14 strings14 strings
14 strings
 
10 array
10 array10 array
10 array
 
8 number-system
8 number-system8 number-system
8 number-system
 
7 decision-control
7 decision-control7 decision-control
7 decision-control
 
6 operators-in-c
6 operators-in-c6 operators-in-c
6 operators-in-c
 
5 introduction-to-c
5 introduction-to-c5 introduction-to-c
5 introduction-to-c
 
3 algorithm-and-flowchart
3 algorithm-and-flowchart3 algorithm-and-flowchart
3 algorithm-and-flowchart
 
2 memory-and-io-devices
2 memory-and-io-devices2 memory-and-io-devices
2 memory-and-io-devices
 
4 evolution-of-programming-languages
4 evolution-of-programming-languages4 evolution-of-programming-languages
4 evolution-of-programming-languages
 
6 operators-in-c
6 operators-in-c6 operators-in-c
6 operators-in-c
 

Kürzlich hochgeladen

Creating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature SetCreating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature SetDenis Gagné
 
Unlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdfUnlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdfOnline Income Engine
 
Value Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsValue Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsP&CO
 
RSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors DataRSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors DataExhibitors Data
 
Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Roland Driesen
 
HONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsHONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsMichael W. Hawkins
 
Best Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in IndiaBest Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in IndiaShree Krishna Exports
 
Event mailer assignment progress report .pdf
Event mailer assignment progress report .pdfEvent mailer assignment progress report .pdf
Event mailer assignment progress report .pdftbatkhuu1
 
Mondelez State of Snacking and Future Trends 2023
Mondelez State of Snacking and Future Trends 2023Mondelez State of Snacking and Future Trends 2023
Mondelez State of Snacking and Future Trends 2023Neil Kimberley
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...anilsa9823
 
B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptx
B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptxB.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptx
B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptxpriyanshujha201
 
Progress Report - Oracle Database Analyst Summit
Progress  Report - Oracle Database Analyst SummitProgress  Report - Oracle Database Analyst Summit
Progress Report - Oracle Database Analyst SummitHolger Mueller
 
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...amitlee9823
 
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayIt will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayNZSG
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageMatteo Carbone
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Dipal Arora
 
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...Lviv Startup Club
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒anilsa9823
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLSeo
 
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Roland Driesen
 

Kürzlich hochgeladen (20)

Creating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature SetCreating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
 
Unlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdfUnlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdf
 
Value Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsValue Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and pains
 
RSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors DataRSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors Data
 
Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...
 
HONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsHONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael Hawkins
 
Best Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in IndiaBest Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in India
 
Event mailer assignment progress report .pdf
Event mailer assignment progress report .pdfEvent mailer assignment progress report .pdf
Event mailer assignment progress report .pdf
 
Mondelez State of Snacking and Future Trends 2023
Mondelez State of Snacking and Future Trends 2023Mondelez State of Snacking and Future Trends 2023
Mondelez State of Snacking and Future Trends 2023
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
 
B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptx
B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptxB.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptx
B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptx
 
Progress Report - Oracle Database Analyst Summit
Progress  Report - Oracle Database Analyst SummitProgress  Report - Oracle Database Analyst Summit
Progress Report - Oracle Database Analyst Summit
 
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
 
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayIt will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 May
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usage
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
 
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
 
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...
 

Functions Explained: Pass Parameters, Return Values

  • 3. Advantages :  Program writing becomes easy  Program becomes easy to understand  Modification in large program becomes easy  Modularity comes in program when we use function 08/23/153
  • 4. Calling to a function. message(); main( ) { message( ) ; printf ( "nHello!" ) ; } message( ) { printf ( "nJUET..." ) ; } And here’s the output... JUET Hello! 08/23/154
  • 5. Calling to a function(Cont…) When main function calls message() the control passes to the function message( ). The activity of main( ) is temporarily suspended; it falls asleep while the message( ) function wakes up and goes to work. When the message( ) function runs out of statements to execute, the control returns to main( ), which comes to life again and begins executing its code at the exact point where it left off. Thus, main( ) becomes the ‘calling’ function, whereas message( ) becomes the ‘called’ function. 08/23/155
  • 6. Cont… main( ) { printf ( "nI am in main" ) ; italy( ) ; brazil( ) ; argentina( ) ; } italy( ){ printf ( "nI am in italy" ) ; } brazil( ){ printf ( "nI am in brazil" ) ; } argentina( ){ printf ( "nI am in argentina" ) ; } 08/23/156 I am in main I am in italy I am in brazil I am in argentina
  • 7. Function Declaration Declaration Syntax: Return_Type Function_Name(argument_list);  Return_Type can be any of data type like char, int, float, double, array, pointer etc.  argument_list can also be any of data type like char, int, float, double, array, pointer etc.  Declaration must be before the call of function in main function Example: int add(int a, int b); 08/23/157
  • 10. Sample Example #include<stdio.h> int sum (int,int); //function declaration void main(){ int p; p=sum(3,4); //function call printf(“%d”,p); } int sum( int a,int b){ int s; //function body s=a+b; return s; //function returning a value } 08/23/1510
  • 11. Passing arguments to functions In programming, argument(parameter) refers to data that is passed to function(function definition) while calling function. In following example two variable, num1 and num2 are passed to function during function call and these arguments are accepted by arguments a and b in function definition.  08/23/1511
  • 12. Cont…  Formal Parameter :Parameter written in Function Definition is Called “Formal Parameter”.  In last example a and b are formal parameters.  There are two methods of declaring the formal arguments. 1. Kernighan and Ritchie (or just K & R) method. calsum ( x, y, z ) int x, y, z ; 2. ANSI method calsum ( int x, int y, int z )  This method is called ANSI method and is more commonlyused these days.  Actual Parameter :Parameter written in Function Call is Called “Actual Parameter”.  In last example num1 and num2 were actual parameters. 08/23/1512
  • 13. Example: parameter passing /* Sending and receiving values between functions */ main( ){ int a, b, c, sum ; printf ( "nEnter any three numbers " ) ; scanf ( "%d %d %d", &a, &b, &c ) ; sum = calsum ( a, b, c ) ; printf ( "nSum = %d", sum ) ; } calsum ( x, y, z ) int x, y, z ; { int d ; d = x + y + z ; return ( d ) ; } And here is the output... Enter any three numbers 10 20 30 Sum = 60 08/23/1513
  • 14. Return statement In the message() function of previous example the moment closing brace ( } ) of the called function was encountered the control returned to the calling function. No separate return statement was necessary to send back the control. This approach is fine if the called function is not going to return any meaningful value to the calling function. In the above program, however, we want to return the sum of x, y and z. Therefore, it is necessary to use the return statement.  The return statement serves two purposes: (1) On executing the return statement it immediately transfers the control back to the calling program. (2) It returns the value present in the parentheses after return, to the calling function. In the above program the value of sum of three numbers is being returned. 08/23/1514
  • 15. Return statement(Cont…)  There is no restriction on the number of return statements that may be present in a function. Also, the return statement need not always be present at the end of the called function.  The following program illustrates these facts. fun( ){ char ch ; printf ( "nEnter any alphabet " ) ; scanf ( "%c", &ch ) ; if ( ch >= 65 && ch <= 90 ) return ( ch ) ; else return ( ch + 32 ) ; }  In this function different return statements will be executed depending on whether ch is capital or not. 08/23/1515
  • 16. Return statement(Cont…)  If a meaningful value is returned then it should be accepted in the calling program by equating the called function to some variable. For example,  sum = calsum ( a, b, c ) ;  All the following are valid return statements.  return ( a ) ;  return ( 23 ) ;  return ( 12.34 ) ;  return ;  A function can return only one value at a time. Thus, the following statements are invalid. return ( a, b ) ;//this will return value of b return ( x, 12 ) ;  There is a way to get around this limitation, which would be discussed later when we learn pointers. 08/23/1516
  • 17. Calling Convention Calling convention indicates the order in which arguments are passed to a function when a function call is encountered. There are two possibilities here: (a) Arguments might be passed from left to right. (b) Arguments might be passed from right to left. C language follows the second order. Consider the following function call: fun (a, b, c, d ) ; In this call it doesn’t matter whether the arguments are passed from left to right or from right to left. 08/23/1517
  • 18. Calling Convention(Cont…) 08/23/1518 •However, in some function call the order of passing arguments becomes an important consideration. •For example:
  • 19. Ways to Pass Parameters Call By Value:In this approach we pass copy of actual variables in function as a parameter. Hence any modification on parameters inside the function will not reflect in the actual variable. 08/23/1519
  • 20. Ways to Pass Parameters(Cont..) Call By Reference:In this approach we pass memory address of actual variables in function as a parameter. Hence any modification on parameters inside the function will reflect in the actual variable. 08/23/1520
  • 21. Swap two variables without using a third variable #include<stdio.h> void swap(int *,int *); void main(){ int a=5,b=10; swap(&a,&b); printf("%d %d",a,b); } void swap(int *a,int *b){ *a=*a+*b; *b=*a-*b; *a=*a-*b; }
  • 22. Types of Function 1st :Take something and Return something (Function with return value and parameters) Example: printf, scanf , strlen, strcmp etc. 2nd : Take something and Return nothing (Function with no return value but parameters) Example: delay, 3rd : Take nothing and return something (Function with return value but no parameter) Example: getch, 4th : Take nothing and return nothing (Function with no return value and no parameter) Example: clrscr, 08/23/1522
  • 23. Take something and Return something 08/23/1523
  • 24. Take something and Return nothing 08/23/1524
  • 25. Take nothing and return something 08/23/1525
  • 26. Take nothing and return nothing 08/23/1526
  • 27. Nesting of function call  If we are calling any function inside another function call is known as nesting function call.  Sometime it converts a difficult program in easy one.  For example 1: int max(int x,int y){ return x>y?x:y; } int fact(int); void main(){ int a,b,c; scanf(“%d%d”,&a,&b); c=fact(max(a,b)); print(“factorial of %d is %d”,max(a,b),c); } 08/23/1527 int fact(int a) { int fact=1; while(a>0) { fact=fact*a; a--; } return fact;  } O/P:6 7 factorial of 7 is 5040
  • 28. Example 2 Nested calling 08/23/1528
  • 29. Problem Write a function which receives a float and an int from main( ), finds the product of these two and returns the product which is printed through main( ). 08/23/1529