2

C言語の名前渡し機構を使って、インデックスiに依存する算術式^2 + 3i − 1の値を計算するにはどうすればよいですか?

9
∑ i^2 + 3i − 1
=0

名前で渡された引数を使用して sum プロシージャを呼び出す

Cで書かれた名前渡しの例も私を助けることができます

4

2 に答える 2

2

ここには、2 つのまったく異なるトピックがあります。

  • (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);
于 2016-05-13T10:31:59.513 に答える