answersLogoWhite

0


Best Answer

There are only two methods: pass by value and pass by reference. The function itself determines how arguments are passed into the function, as defined by the function signature. If the function accepts a reference, then the argument is passed by reference, otherwise it is passed by value. Pointers are always passed by value but behave like references. The only real difference is that pointer values may be NULL but references can never be NULL.

User Avatar

Wiki User

10y ago
This answer is:
User Avatar
More answers
User Avatar

Wiki User

11y ago

The main two methods to pass parameters in c are

1:Pass by value

2:Pass by reference

The first method is where w e pass the local variable from the calling function to called and receive it using the local variables of the function

like the function call will look like

fun(x,y)

and the function can receive them in some local variable. Here the changes made to the values of the parameters inside the function wont affect the original variable.

Another is we can pass the address of the parameters to the function and receive them in pointers.Here what ever change you make to the values will affect the variables.

This answer is:
User Avatar

User Avatar

Wiki User

7y ago

Only one way; by value. However, if the value being passed is a memory address, we're effectively passing by reference.

The value we pass to a function (or method) is known as the actual argument. The value used by the function is known as the formal argument. The actual and formal arguments are completely separate variables, so changing the value of one has no effect upon the other. However, when both variables are pointers, they can both refer to the same memory address, and either can be used to indirectly change the value stored at that address.

When an object is less than or equal to a pointer's length (in bytes), we generally use the default pass by value semantic. If we wish to change the actual argument's value, we typically return the modified value by value. For example:

int byval (int x) { return x*2; }

Example usage:

int x = 21;

x = byval (x); // x is now 42

This is good design because it lets the caller decide where to assign the modified value:

int y = byval (x); // y is now 84, x is still 42

Normally we do not expect a function to modify the actual arguments passed to it. Passing by value guarantees this because the formal argument is a copy of the actual argument. However, when an object is larger than a pointer's length (in bytes), copying its value will impact performance. Passing large objects by reference minimises the cost because copying a pointer is trivial.

There are four ways to define the formal argument using pass by reference semantics:

  1. by mutable reference to mutable type
  2. by constant reference to mutable type
  3. by mutable reference to constant type
  4. by constant reference to constant type

To change the value being pointed at we must use methods 1 or 2.

To prevent changes to the value being pointed at we must use methods 3 or 4.

To change the address being pointed at we must use methods 1 or 3.

To prevent changes to the address being pointed at we must use methods 2 or 4.

Given that we don't normally expect a function to change the actual argument, we normally use method 3. However, returning modified objects by value is just as expensive as passing those objects by value, so when we need to modify the actual argument for efficiency, we typically use method 1.

Note that it does not matter whether the pointer itself is declared constant or mutable because the address is passed by value so the function can change the address of the formal argument without affecting the actual argument.

All four pass by reference methods are demonstrated here:

void byref (int* p, int* const q, const int* r, const int* const s) {

(*p) *= 2; // ok

(*q) *= 2; // ok

(*r) *= 2; // illegal, pointer to constant type

(*s) *= 2; // illegal, pointer to constant type

p = q; // ok

q = p; // illegal, q is a constant pointer

r = s; // ok

s = r; // illegal, s is a constant pointer

}

This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: How many types of parameters passing techniques are there In c language?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Related questions

What are the types of language techniques starting with s?

Satire and simile are language techniques. They begin with the letter s.


What is meant by function declaration in C language?

The name of the function is established by what is called function declaration. It also establishes the number and the types of parameters.


What Language techniques are in Macebth Act 3 Scene 4?

there are different types of language techniques but difficult to find as the text is written in a different way but it is easy to spot language techniques such as repitition, alitteration ect.. other techniques you could find are metaphors and similies you could also add imagery of different sorts as Macbeth uses a wide rande of them e.g clothing imagery, colour imagery ect..


Different types of sorting techniques in c language?

types of sorting in c language are: insertion sort selection sort bubble sort merge sort two way merge sort heap sort quick sort


Discuss types of environment and techniques of environmental forecasting?

what is enviornmental forcasting and its steps, objectives, types and techniques


Different Types of risks and the techniques employed to identify them?

Different Types of risks and the techniques employed to identify them?


What types of inferences will you make about population parameters?

Estimation regression testing


What are the three types of observation in language study?

The three types of observation in language study are naturalistic observation, controlled observation, and participant observation. Naturalistic observation involves observing language use in natural, everyday contexts. Controlled observation is conducted in a controlled environment with specific parameters and conditions. Participant observation involves actively participating in the language community being studied while also observing and documenting language use.


What are different types of hashing techniques are there in DBMS?

there are 2 types of hashing techniques 1- Static hashing 2-Dynamic hashing


What types of techniques did Vietnam use to win the war?

Which types of techniques did WHICH Vietnam use? There were two Vietnams: North Vietnam and South Vietnam.


What are the 10 types of reading techniques?

BEHNCHOD


Why java is not a complete object oriented language?

Java is not a completely object oriented language, because not all values in Java are Objects. For example, the basic numeric types such as int, long, double, etc., are not objects and need to be "boxed" into objects in order to pass them as Object parameters or call methods on them.