【发布时间】:2018-11-07 20:20:03
【问题描述】:
大家早上好/晚上好,
我想清除以下指针概念,
在这个原型中,我传递了第一个值,复制了 main 中给出的第一个参数 x,第二个我通过引用传递了它,因此我直接访问它的内存单元以永久更改它。
我没有(在函数中)得到的是函数如何管理值,
我会尝试更具体一些,我不明白这些分配有多少是“循环”的。
例如,这个函数对我来说似乎是一种交换函数,因为它接受 x 和整数并将 y 指向的值分配给 x,即 y+1 依次指向的值,依此类推。
所以我想知道这个分配序列何时开始和结束,以了解为什么我是在 main 中打印它还是在它 printf 的函数中打印它如果我没记错 {11,33,22,44 }
void Boh(int x,int *y)
{
x = *y;
*y = *(y+1);
*(y+1) = x;
}
int main()
{
int a[] = {11,22,33,44};
Boh(a[0],&a[1]); \* (Point 1) *\
return 0;
}
【问题讨论】:
-
将值传递给
x毫无意义,因为您在第一条语句中更改了它:x = *y;。
标签: c arrays function pointers