以下のプログラムの出力は0 2
ですが、出力は<garbage value> 2
と予想されます。誰かがなぜ出力が0 2
であるのかを説明できますか?Cポインタチャレンジの出力を説明してください。
世界の主要エンジニアリング機関の1つで、入試で質問されました。 iとjの上記のコードの最初の値で
#include<stdio.h>
void f(int *p, int *q)
{
p = q;
*p = 2;
}
int i = 0, j = 1;
int main()
{
f(&i, &j);
printf("%d %d \n", i, j);
getchar();
return 0;
}
あなたは何を期待していますか?私にとってはかなり簡単です。私は施設の主役に疑問を抱いています... –
なぜあなたはごみの価値を期待していますか?すべてのポインタが明確に定義され使用されているわけではありませんか? – AntonH
@usrなぜ '0'はガベージ値ですか? 'int i = 0'と変更されたものはありません。 –