私は次のコードを持っています:
#include <stdio.h>
int foo2(int *px, int *py)
{
int sum = *px + *py;
*px = *px + 1;
*py = *py - 1;
printf("foo2 : res=%d x=%d y=%d\n", sum, *px, *py);
return sum;
}
int main() {
int x = 4, y = 7, res;
res = foo2(&(x++), &(y--));
printf("%d", res);
return 0;
}
increment x
、decrement y
する必要があり、次にそれらをfoo
関数として引数として渡す必要があります。
持っていerror: lvalue required as unary ‘&’ operand
ます。また、私は使用しようとしたx + 1
とy - 1
の代わりに、x++
とy++
。
関数呼び出しで値x
とy
値を増分し、それらにポインターを渡すにはどうすればよいfoo2
ですか?出来ますか?
コンマ演算子を使用できます。
res = foo2((x++, &x), (y--, &y));
ただし、これはあまり読みやすいものではないため、本当に正当な理由がない限り、次の3つのステートメントとして記述する方が適切です。
x++;
y--;
res = foo2(&x, &y);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加