**The Program in C to Calculate Area & Perimeter using call by reference is given below:**

```
#include <stdio.h>
void calculate(int *length, int *width, int *area, int *perimeter) {
*area = (*length) * (*width);
*perimeter = 2 * (*length + *width);
}
int main() {
int length, width, area, perimeter;
printf("Enter the length of the rectangle: ");
scanf("%d", &length);
printf("Enter the width of the rectangle: ");
scanf("%d", &width);
calculate(&length, &width, &area, &perimeter);
printf("Area of the rectangle: %d\n", area);
printf("Perimeter of the rectangle: %d\n", perimeter);
return 0;
}
```

## Output:

Enter the length of the rectangle: 67

Enter the width of the rectangle: 45

Area of the rectangle: 3015

Perimeter of the rectangle: 224

## Pro-Tips**💡**

In this program, the function ‘calculate’ uses call by reference.

This means that it uses the memory addresses of the variables passed to it, rather than copies of the variables.

The function operates on the original variables, so the change made inside the function is reflected in the main function.

The function ‘calculate’ takes in four pointers to integers, two of them are representing length and width of the rectangle,

and other two representing area and perimeter. Inside the function, the area is calculated using the formula (length*width) and perimeter is calculated using the formula (2*(length+width))

and these values are stored in the memory addresses pointed to by the pointers of area and perimeter.

In main function, we passed the memory addresses of ‘length’, ‘width’, ‘area’ and ‘perimeter’ using the & operator, so that the values stored at those addresses can be changed.

**Learn C-Sharp ↗**

C-sharp covers every topic to learn about C-Sharp thoroughly.

**Learn C Programming ↗**

C-Programming covers every topic to learn about C-Sharp thoroughly.

**Learn C++ Programming↗**

**Learn C++ Programming↗**

C++ covers every topic to learn about C-Sharp thoroughly.