2016-03-19 9 views
0

このCのような擬似コードは、次のコードに対して何を返しますか?このコードでは、incrementAllのパラメータがcall-by-value-resultを使用していると仮定しています。助けてくれてありがとう。値による呼び出しの擬似コード

void incrementAll (int val1, int val2, int val3) { 
    val1 += 1; 
    val2 += 1; 
    val3 += 1; 
} 
void main() { 
    int save = 1; 
    int list[] = {1, 2, 3, 4, 5}; 
    incrementAll(save, list[save], list[list[save]]); 
    for (int i=0; i < listLength; i++) { 
      printf("%d ", list[i]); 
    } 
    printf("\n"); 
} 
+0

私はあなたがここで質問したいことについてはわかりません。メインが返ってくることについて話しているなら、何も返さず、関数は何も返しません。私の混乱を解消できますか? –

+0

申し訳ありませんがメインを更新しました。 Mainはリストを出力するはずです –

答えて

0

コールである値の結果を使用して値の結果によってコールで、最初の配列の値は、関数呼び出しの終了時に、ローカル変数にコピーされるように、出力は、13445であるように、変更された値がコピーされ元のパラメータに戻ります。しかし、それはCの特徴ではありません。

+0

これはリテラルなCコードではないと仮定されています。私は、incrementAllは値の呼び出し結果であると仮定しています。それをもっと鮮明にしないと申し訳ありません。 –

+0

@DanielKobe仮説Cコードの場合、私は質問を得ることができない限り、値によって呼び出される限り、コードは12345を返します。ごめんなさい –

+0

値で呼び出されない、結果 –

関連する問題