如何使用C语言中的pass-by-name机制计算依赖于索引i的算术表达式𝑖^2 + 3i − 1的值
9
Σ i^2 + 3i − 1
𝑖=0
通过调用 sum 过程并通过名称传递参数
用 C 语言编写的传递名称示例也可以帮助我
最佳答案
这里有两个完全不同的主题:
- (1) 您想学习 C。在 C 中,您总是传递一个值,但该值可能是一个指针,其作用实际上类似于按引用传递。
- (2) 您想要计算该总和。
您可以使用(1)来解决(2),但这不是一个好方法。
您可以使用(2)作为示例来学习(1)。
但是应该很清楚,(1)和(2)不是一回事。
这是在 C 语言中将值传递给函数的方法:
void f(int i); ... f(123);
这是在 C 语言中传递指针到函数的方法:
void f(int* i); ... int i=123; f(&i);
这是在 C 中计算总和的典型方法:
int sum = 0;
for(int i=0; i<=9; ++i)
sum += 2 + 3*i - 1;
// now sum contains the sum
如果出于某种原因(例如家庭作业要求?)你想传递一个指针来计算总和,那么:
void f(int* psum, int i) {
*psum += 2 + 3*i - 1;
}
...
int sum=0;
for(int i=0; i<=9; ++i)
f(&sum, i);
关于c - C 中的按名称传递实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37197135/