---
title: 6.8 Passing Arguments by Value
description: "C passes function arguments by value. Each parameter receives a copy of the argument's value, so modifying the parameter does not directly modify the original variable in the calling function. ``` #include void changeValue(int number) { number = 100; printf(\"Inside…"
url: "https://edcret.in/docs/c-programming/c-functions/6-8-passing-arguments-by-value/"
updated: "2026-10-27"
category: C Programming / Functions
---

# 6.8 Passing Arguments by Value

C passes function arguments by value. Each parameter receives a copy of the argument's value, so modifying the parameter does not directly modify the original variable in the calling function.

```
#include <stdio.h>

void changeValue(int number)
{
    number = 100;
    printf("Inside function: %d\n", number);
}

int main(void)
{
    int value = 10;

    changeValue(value);

    printf("Inside main: %d\n", value);

    return 0;
}
```

### Example Output

```
Inside function: 100
Inside main: 10
```

### Explanation

The variable `value` is initialized to `10`:

```
int value = 10;
```

When `changeValue(value)` is called, the value of `value` is copied into the parameter `number`.

```
void changeValue(int number)
{
    number = 100;
}
```

The assignment changes only the local parameter `number`. The original variable `value` remains unchanged.

### Argument Passing

| Operation | Value |
| --- | --- |
| Initial value of `value` | 10 |
| Initial value copied into `number` | 10 |
| `number` after assignment | 100 |
| `value` after function returns | 10 |

C uses pass-by-value for all function arguments, including pointer arguments. A pointer's value—the address it stores—is copied when passed to a function. A function can use that copied address to modify the object it points to, which is covered in the next lesson.
