c - 在 C 中使用指针模拟按引用传递

标签 c

这个 C 程序假设从用户那里得到五个整数值并将它们存储在一个数组中。其次,它会要求用户提供另一个整数 n。该值将用作数组元素的乘数。接下来,它将修改数组的元素,使新值是原始值的 n 倍,其中 n 是乘数。我要使用 函数 传递第一个数组元素的地址,以及 n, 来修改值。

现在这是我想出的代码,但它只修改数组的第一个元素。

#include <stdio.h>
#define SIZE 5

void multiply(int *aPtr, int);

int main(){
    int array[SIZE];
    int i=0;
    int m;

    printf("Enter 5 integers: ");
    for(i=0; i<SIZE; i++){
        scanf("%d", &array[i]);
        }

    printf("Please enter the multiplier: ");
    scanf("%d", &m);

    multiply(&array[0], m);

    for(i=0; i<SIZE; i++){
        printf("%d  ", array[i]);
        }

    return 0;
    }

void multiply(int *aPtr, int mul){

    for(i=0; i<SIZE; i++)
    *aPtr = *(aPtr+i) * mul;

    }

最佳答案

乘法后,您将所有值存储到同一位置,即 *ptr。改变

*aPtr = *(aPtr+i) * mul;  

*(aPtr+i) = *(aPtr+i) * mul;

关于c - 在 C 中使用指针模拟按引用传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27540864/

相关文章:

c - FFT算法C代码解释

c - bool 数组的排列

c - 在基于 arm 的拱门上声明标志的更好方法是什么?

c - 即使我为指针结构分配内存,我的 strcpy 也无法工作

c - 函数中声明的局部变量在函数结束后会消失吗?

C 结构体作为参数

c - 如何将字符存储在动态分配的整数数组中?

c - 在 C 中,像 "a string"[4] 这样的东西究竟意味着什么?

c - 这个数组定义为静态而不是全局的是什么?

c++ - 用于查看 Wireshark 重置数据包的 C/C++ 应用程序