これで、参照渡し的な、値渡しを表現しました。 #include int dast(int x, int y) { int temp; temp = x; x = y; y = temp; return x; } int dast1(int x, int y) { int temp; temp = x; x = y; y = temp; return y; } int main(void) { int a,b; scanf("%d %d", &a, &b); dast(a, b); printf("%d %d", a, b); printf("%d",dast(a,b)); printf("%d", dast1(a, b)); return 0; } 関数内でのみ有効である証明?といいますか。