c - 如何增加作为参数传递给 C 中函数的变量的值
问题描述
我有一个main
具有变量int x
和int y
. 我正在调用一个void
函数 ,task
其地址x
和y
指针int *p1
,int *p2
是函数的参数task
。
然后我尝试增加 and 中包含的值*p1
,*p2
尝试更改变量x
and的值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
?
解决方案
改变:
*p1++;
*p2++;
至
(*p1)++;
(*p2)++;
在第一种情况下,指针变量p1
和p2
正在递增,而不是它们指向的值。
使用括号可以清楚地表明要递增的值,而不是指针本身。
推荐阅读
- javascript - 函数在 `if` 语句 javascript/jQuery 中无法正常工作
- c# - 如何通过 Entity Framework Core 从包含列表中包含一个类?
- python - 将 Excel 数据/值打印到 Matplotlib
- docker - Windows docker“docker ps”不工作
- javascript - 如何用 php 表单的搜索结果填充空的 javascript 数组?
- r - 如何将具有相同行名的数据组合到R中的一列
- xml - 使用 powershell 在 XML 节点内设置属性
- javascript - 包含动态 .js 和 .css 的动态 php 头文件
- symfony - 使用自定义存储库时,动态 EntityManager find() 方法返回“未找到表”
- apache-zeppelin - Zeppelin 更改端口未更新