首页 > 解决方案 > 如何增加作为参数传递给 C 中函数的变量的值

问题描述

我有一个main具有变量int xint y. 我正在调用一个void函数 ,task其地址xy指针int *p1,int *p2是函数的参数task

然后我尝试增加 and 中包含的值*p1*p2尝试更改变量xand的值y,因为我正在增加内部变量中的值。

#include <stdio.h>

void task(int *p1, int *p2)
{
 *p1++;
 *p2++;
 printf("%d\n", *p1);
 printf("%d\n", *p2);
 }

 int main()
 {
  int x = 10;
  int y = 100;

  task(&x, &y);
  printf("%d\n", y);
  printf("%d\n", x);
 }

但价值观保持不变。是否可以更改变量x和的值y

标签: cpointers

解决方案


改变:

 *p1++;
 *p2++;

 (*p1)++;
 (*p2)++;

在第一种情况下,指针变量p1p2正在递增,而不是它们指向的值。

使用括号可以清楚地表明要递增的值,而不是指针本身。


推荐阅读