C函数能否在调用函数中修改其输入参数的值?

C函数能否在调用函数中修改其输入参数的值?,c,C,C函数能否在调用函数中修改其输入参数的值 你能举个例子吗。如果参数是指针,答案是肯定的,否则是否定的 C中经典的交换2号函数就是一个很好的例子 void swap(int *a, int *b) { int t; t = *a; *a = *b; *b = t; } 用法: int a = 1; int b = 2; swap(&a, &b); 没有指针也不行。C不是按引用传递,而是按值传递 下面是一个带有指针的简单示例: #include &

C函数能否在调用函数中修改其输入参数的值


你能举个例子吗。

如果参数是指针,答案是肯定的,否则是否定的

C中经典的交换2号函数就是一个很好的例子

void swap(int *a, int *b)
{
    int t;
    t = *a;
    *a = *b;
    *b = t;
}
用法:

int a = 1;
int b = 2;
swap(&a, &b);

没有指针也不行。C不是按引用传递,而是按值传递

下面是一个带有指针的简单示例:

#include <stdio.h>

int reassign_argc(int *argc)
{
    return *argc = 7;
}

int main(int argc, char **argv)
{
    if(argc == 7) argc = 3;
    reassign_argc(&argc);
    printf("%d\n", argc);
    return 0;
}

没有指针也不行。C不是按引用传递,而是按值传递。